User Tools

Site Tools


html-css-js

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
html-css-js [2024/03/04 16:36] mbunichtml-css-js [2025/12/01 11:40] (current) – external edit 127.0.0.1
Line 42: Line 42:
 Vidimo da nam još jedan dio flaga fali i da se ne nalazi unutar ovih triju datoteka, ali u tekstu zadatka piše „kako zabraniti google - u da indeksira moju stranicu? Vidimo da nam još jedan dio flaga fali i da se ne nalazi unutar ovih triju datoteka, ali u tekstu zadatka piše „kako zabraniti google - u da indeksira moju stranicu?
 Kako bi web tražilica znala koji se sadržaj i informacije nalaze na kojim web stranicama, da ih potom može adekvatno spremiti u svoju veliku bazu web stranica, tražilice koriste programe (tzv. web crawlere), koji sistemski pretražuje sve stranice weba na koje može naići i pregledava sadržaj tih web stranica kako bi zabilježio u svoju bazu podataka pronađenu web stranicu i ključan sadržaj koji se nalazi na toj stranici. Kako bi web tražilica znala koji se sadržaj i informacije nalaze na kojim web stranicama, da ih potom može adekvatno spremiti u svoju veliku bazu web stranica, tražilice koriste programe (tzv. web crawlere), koji sistemski pretražuje sve stranice weba na koje može naići i pregledava sadržaj tih web stranica kako bi zabilježio u svoju bazu podataka pronađenu web stranicu i ključan sadržaj koji se nalazi na toj stranici.
-Kako bi se reguliralo koje web stranice tražilice smiju indeksirati, moguće je stvoriti datoteku „robots.txt” u kojoj je moguće navesti dozvole i zabrane indeksiranja . Legitimni web crawleri poštuju te dozvole i neće indeksirati stranice koje su u dokumentu „robots.txt” označene kao zabranjene za indeksiranjef.+Kako bi se reguliralo koje web stranice tražilice smiju indeksirati, moguće je stvoriti datoteku „robots.txt” u kojoj je moguće navesti dozvole i zabrane indeksiranja . Legitimni web crawleri poštuju te dozvole i neće indeksirati stranice koje su u dokumentu „robots.txt” označene kao zabranjene za indeksiranje.
 U zadatku „Raspršeni podatci“, gdje je hint prikazan na slici 3,  „kako zabraniti google – u da indeksira moju stranicu?“, možemo zaključiti da nas hint navodi na pregledavanje robots.txt datoteke. Kako bi dohvatili robots.txt datoteku, moramo na kraj URL-a dodati putanju "/robots.txt". U zadatku „Raspršeni podatci“, gdje je hint prikazan na slici 3,  „kako zabraniti google – u da indeksira moju stranicu?“, možemo zaključiti da nas hint navodi na pregledavanje robots.txt datoteke. Kako bi dohvatili robots.txt datoteku, moramo na kraj URL-a dodati putanju "/robots.txt".
  
Line 50: Line 50:
 </code>  dodajemo putanju  </code>  dodajemo putanju 
 <code>/robots.txt </code>  <code>/robots.txt </code> 
-te je puni URL, zajedno sa putanjom: +te je puni URL, zajedno putanjom: 
 <code>http://chal.platforma.hacknite.hr:7067/robots.txt </code> <code>http://chal.platforma.hacknite.hr:7067/robots.txt </code>
  
Line 64: Line 64:
 </code> </code>
  
-Kojima se svim web crawlerima zabranjuje indeksiranje  „/indeks.html“ putanje web stranice, odnosno web crawlerima se zabranjuje pregled i pohrana sadržaja početne stranice u baze podataka web tražilica. Važno je razumijeti da iako legitimni crawleri poštuju robots.txt, on nije sigurnosna mjera. Moguće je napraviti crawler koji ignorira robots.txt.+Kojima se svim web crawlerima zabranjuje indeksiranje  „/indeks.html“ putanje web stranice, odnosno web crawlerima se zabranjuje pregled i pohrana sadržaja početne stranice u baze podataka web tražilica. Važno je razumjeti da iako legitimni crawleri poštuju robots.txt, on nije sigurnosna mjera. Moguće je napraviti crawler koji ignorira robots.txt.
  
  
Line 87: Line 87:
 Ovaj zadatak ima sličan princip rješavanja  prethodnom zadatku. Pri otvaranju linka zadatka, otvara nam se sučelje za unos i provjeru točnosti unesene lozinke. Pri analizi posluženog koda stranice na klijentskoj strani, s pomoću **razvojnih alata (F12)**, nailazimo na  Ovaj zadatak ima sličan princip rješavanja  prethodnom zadatku. Pri otvaranju linka zadatka, otvara nam se sučelje za unos i provjeru točnosti unesene lozinke. Pri analizi posluženog koda stranice na klijentskoj strani, s pomoću **razvojnih alata (F12)**, nailazimo na 
 <code> HTML <script> </code>  <code> HTML <script> </code> 
-element, unutar kojeg je JavaScript kod, pomoću kojega je implementirana sama funkcionalnost provjere točnosti lozinke. Spomenuti dio koda je prikazan na slici ispod.+element, unutar kojeg je JavaScript kod, pomoću kojega je implementirana sama funkcionalnost provjere točnosti lozinke. Spomenuti dio koda je prikazan na slici ispod.
  
 {{ :htmlcssjsimage6.png?400 |Neispravna implementacija poslovne logike na klijentskoj strani}} {{ :htmlcssjsimage6.png?400 |Neispravna implementacija poslovne logike na klijentskoj strani}}
Line 108: Line 108:
 //(komentar za čitatelje)  Za vježbu pokušajte riješiti jednostavan zadatak „izlet“, koji predstavlja još jedan jednostavan zadatak na principu neispravne implementacije kritične poslovno logike na klijentskoj strani.  //(komentar za čitatelje)  Za vježbu pokušajte riješiti jednostavan zadatak „izlet“, koji predstavlja još jedan jednostavan zadatak na principu neispravne implementacije kritične poslovno logike na klijentskoj strani. 
  
-HINT: ovaj put kritična funkcionalnost nije implementirana pomoću JavaScripta, nego pomoću HTML-a.//+HINT: ovaj put kritična funkcionalnost nije implementirana pomoću JavaScripta, nego pomoću HTML-a.//
  
 === Nezaštićeni API === === Nezaštićeni API ===
Line 131: Line 131:
 Flag je u formatu CTF2023[brojevi]. Flag je u formatu CTF2023[brojevi].
 </file> </file>
 +
 +Analizom zadatka, na prvi pogled nije nam dostupno skoro ništa, samo je prikazana rečenica „Dobro došli na moj forum. Registracija će uskoro biti otvorena.“ Otvaranjem razvojnih alata (F12), unutar tijela HTML dokumenta ( unutar <body> elementa ), vidimo da se koriste tri skripte, jedna je definirana unutar samog HTML-a, dok su druge dvije definirane s pomoću veze na lokaciju gdje se nalazi skripta.
 +
 +
 +{{ :htmlcssjsimage8.png?400 |Tri skripte unutar tijela HTML dokumenta}}
 +
 +Prvu skriptu možemo analizirati direktno unutar HTML dokumenta, dok za dohvat drugih dviju skripti moramo unijeti lokaciju skripte u browser, kao URL, odnosno za dohvat skripte koje se nalazi na putanji: 
 +<code>/static/js/2.010c019a.chunk.js</code>
 +moramo nadodati tu putanju na putanju početnu putanju stranice: <code>http://chal.platforma.hacknite.hr:12001/</code>
 +čime dobivamo potpunu putanju: <code>http://chal.platforma.hacknite.hr:12001/static/js/2.010c019a.chunk.js</code>
 +
 +Analizom ovih skripti, možemo zaključiti da je JavaScript kod koji se nalazi unutar njih „minificiran“. Minifikacija je postupak u kojemu se ulazni JavaScript kod modificira tako da se maksimalno odstranjuju svi dijelovi koda i znakovi uz održavanje iste funkcionalnosti samog koda. Time dobivamo kod koji više nije čitljiv i jednostavan za pregled ljudima, ali jest kao dokument manji, te troši manje resursa/prometa uz održavanje iste funkcionalnosti.
 +
 +Iako postoje načini za „deminifikaciju“ minificiranog koda, koji bi trebali u nekoj mjeri povratiti originalnu čitljivost, i dalje će biti potrebno malo više truda i vremena za razumijevanje koda. No postoje dijelovi koda koji se ne mijenjaju minifikacijom, kao na primjer određene vrijednosti varijabli i lokacije ili adrese nekih resursa koji se pozivaju.
 +
 +Ovom logikom, možemo probati pretražiti par ključnih pojmova u minificiranim skriptama, kao na primjer „admin“, „password“ i „flag“.
 +
 +Pretraživanjem riječi „flag“ u zadnjoj skripti, dobijemo zanimljiv isječak koda prikazan na slici ispod.
 +
 +{{ :htmlcssjsimage9.png?400 |Pretraživanje riječi „flag“ u zadnjoj skripti}}
 +
 +Izvučena linija koda u kojoj je pronađena riječ flag: 
 +<code>fetch("/api/b3c865a0-4d24-420d-a055-34be59d0c8fb/flag")</code>
 +
 +Vidimo da se ovom linijom koda vrši poziv određene API funkcionalnosti serverske strane, koja se poziva unošenjem putanje 
 +<code>/api/b3c865a0-4d24-420d-a055-34be59d0c8fb/flag</code>
 + na početnu putanju web stranice.
 +
 +Ručnim pozivanjem tog API poziva, koji izvršavamo unošenjem punog URL-a: 
 +
 +<code>http://chal.platforma.hacknite.hr:12001/api/b3c865a0-4d24-420d-a055-34be59d0c8fb/flag</code>
 +
 +Dobivamo rješenje zadatka prikazano na slici ispod.
 +
 +{{ :htmlcssjsimage10.png?400 |Rješenje zadatka „Kemijske reakcije“}}
  
  
html-css-js.1709570199.txt.gz · Last modified: 2025/12/01 11:40 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki