csrf
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| csrf [2023/12/04 17:43] – lss | csrf [2025/12/01 11:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====CSRF===== | ====CSRF===== | ||
| - | CSRF (Cross site request forgery) je vrsta napada koja iskorištava ranjivost nastalu zbog ne razlikovanja | + | **CSRF** (//Cross site request forgery//) je vrsta napada koja iskorištava ranjivost nastalu zbog nerazlikovanja |
| - | Najjednostavniji primjer jest sljedeći: | + | Zamislimo da se na adresi < |
| - | + | ||
| - | Zamislimo da se na adresi < | + | |
| < | < | ||
| Line 14: | Line 12: | ||
| Napad bi potencijalno bio moguć i da funkcionalnost koristi POST zahtjev. Pretpostavimo da bankarska aplikacija koristi formu sljedećeg izgleda: | Napad bi potencijalno bio moguć i da funkcionalnost koristi POST zahtjev. Pretpostavimo da bankarska aplikacija koristi formu sljedećeg izgleda: | ||
| - | < | + | < |
| <form action="/ | <form action="/ | ||
| Line 28: | Line 26: | ||
| Zatim kreira svoju lažnu stranicu te na njoj postavi sljedeći obrazac: | Zatim kreira svoju lažnu stranicu te na njoj postavi sljedeći obrazac: | ||
| - | < | + | < |
| <form action=" | <form action=" | ||
| <input type=" | <input type=" | ||
| Line 40: | Line 38: | ||
| No, slanje ovog zahtjeva je moguće automatizirati tako da ga žrtva pošalje samim posjetom stranice. Npr. dodavanjem funkcije submit u onload atribut u body elementu: | No, slanje ovog zahtjeva je moguće automatizirati tako da ga žrtva pošalje samim posjetom stranice. Npr. dodavanjem funkcije submit u onload atribut u body elementu: | ||
| - | < | + | < |
| <body onload=" | <body onload=" | ||
| < | < | ||
| Line 54: | Line 52: | ||
| Najbolja zaštita od ovakvih napada je korištenje CSRF tokena. To su nasumično generirane vrijednosti čija | Najbolja zaštita od ovakvih napada je korištenje CSRF tokena. To su nasumično generirane vrijednosti čija | ||
| u sjednicu korisnika svakim novim zahtjevom i imaju kratak period trajanja. Unutar svakog novog zahtjeva klijent šalje predani token natrag nakon čega poslužitelj provjerava njegovu validnost. Ako je vrijednost ispravna, zahtjev se izvršava i postavlja se novi token. Budući da (ako su CSRF tokeni ispravno implementirani) napadač ne može pogoditi vrijednost CSRF tokena, ne može ni lažirati korisnički zahtjev. CSRF tokeni se često ne postavljaju u [[HTTP]] GET zahtjeve zbog čega je bitno da se GET zahtjevima ne može mijenjati stanje u aplikaciji. | u sjednicu korisnika svakim novim zahtjevom i imaju kratak period trajanja. Unutar svakog novog zahtjeva klijent šalje predani token natrag nakon čega poslužitelj provjerava njegovu validnost. Ako je vrijednost ispravna, zahtjev se izvršava i postavlja se novi token. Budući da (ako su CSRF tokeni ispravno implementirani) napadač ne može pogoditi vrijednost CSRF tokena, ne može ni lažirati korisnički zahtjev. CSRF tokeni se često ne postavljaju u [[HTTP]] GET zahtjeve zbog čega je bitno da se GET zahtjevima ne može mijenjati stanje u aplikaciji. | ||
| - | |||
| - | __**Primjer**__ - **Zadatak s Hacknite platforme -" | ||
| - | |||
| - | < | ||
| - | Mario je napravio stranicu preko koje si korisnici šalju poveznice. On je administrator na stranici s korisničkim imenom " | ||
| - | </ | ||
csrf.1701711821.txt.gz · Last modified: 2025/12/01 11:40 (external edit)