length-extension-attack
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| length-extension-attack [2023/11/29 12:10] – lss | length-extension-attack [2025/12/01 11:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 16: | Line 16: | ||
| tajna_vrijednost nije poznata! | tajna_vrijednost nije poznata! | ||
| - | Jedan od alata kojim se može izvesti ovakav napad je hash_extender [1]. | + | Jedan od alata kojim se može izvesti ovakav napad je **hash_extender** [1]. |
| - | __**Primjer**__ - **Zadatak s Hacknite platforme - Digitalni potpis | + | __**PRIMJER**__ - **Zadatak s Hacknite platforme - Digitalni potpis** |
| - | ** | + | |
| < | < | ||
| - | Stjepan je osmislio inovativan način autentifikacije. Umjesto lozinke, korisnici moraju učitati digitalno potpisanu datoteku koja dokazuje njihov identitet. Je li autentifikacija implementirana na siguran način? | + | Stjepan je osmislio inovativan način autentifikacije. Umjesto lozinke, korisnici moraju učitati digitalno |
| + | potpisanu datoteku koja dokazuje njihov identitet. Je li autentifikacija implementirana na siguran način? | ||
| - | Dostupna Vam je python skripta za generiranje datoteka i digitalno potpisana datoteka niskoprivilegiranog korisnika, ali ne i tajna lozinka koja se koristi za digitalno potpisivanje. | + | Dostupna Vam je python skripta za generiranje datoteka i digitalno potpisana datoteka niskoprivilegiranog |
| + | korisnika, ali ne i tajna lozinka koja se koristi za digitalno potpisivanje. | ||
| Hint: length extension attack | Hint: length extension attack | ||
| Line 37: | Line 38: | ||
| Proučimo skriptu gen_signed_dokument.py | Proučimo skriptu gen_signed_dokument.py | ||
| - | < | + | < |
| import sys | import sys | ||
| import hashlib | import hashlib | ||
| Line 75: | Line 76: | ||
| {{length_extension_2.png}} | {{length_extension_2.png}} | ||
| - | To se dogodilo zato što je u tom dokumentu valjani MAC za tekst < | + | To se dogodilo zato što je u tom dokumentu valjani MAC za tekst < |
| < | < | ||
| - | can_read_flag</ | + | can_read_flag</ |
| Možemo zaključiti da trebamo generirati dokument koji ima u sebi ime korisnika, tekst // | Možemo zaključiti da trebamo generirati dokument koji ima u sebi ime korisnika, tekst // | ||
| - | Budući da ne znamo tajnu vrijednost, ne možemo jednostavno izračunati valjani MAC, a budući da je tajna duga 32 znaka ne | + | Budući da ne znamo tajnu vrijednost, ne možemo jednostavno izračunati valjani MAC, a, budući da je tajna duga 32 znaka, ne možemo ju ni pogoditi. Međutim, imamo valjani MAC za tekst // |
| - | možemo ju ni pogoditi. Međutim, imamo valjani MAC za tekst // | + | |
| - | napad produljenjem. | + | |
| Koristimo alat // | Koristimo alat // | ||
| Line 90: | Line 88: | ||
| U argument //--data// postavljamo podatak // | U argument //--data// postavljamo podatak // | ||
| - | , u argument append dodajemo tekst koji želimo nadodati na kraj datoteke (paziti da se treba dodati i newline!) te kao veličinu tajne stavljamo 32 (što smo isčitali iz koda). | + | , u argument append dodajemo tekst koji želimo nadodati na kraj datoteke (paziti da se treba dodati i newline!) te kao veličinu tajne stavljamo 32 (što smo iščitali iz koda). |
| Kao ispis programa dobili smo novogenerirani validni MAC te //hexdump// novog dokumenta. Osim teksta // | Kao ispis programa dobili smo novogenerirani validni MAC te //hexdump// novog dokumenta. Osim teksta // | ||
length-extension-attack.1701259825.txt.gz · Last modified: 2025/12/01 11:40 (external edit)