This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
secure-low-level-programming:capitole:05-siruri [2018/12/19 10:27] razvan [Suprascriere (overflow)] |
secure-low-level-programming:capitole:05-siruri [2018/12/19 11:07] (current) razvan [Suprascriere (overflow)] |
||
---|---|---|---|
Line 70: | Line 70: | ||
</code> | </code> | ||
</note> | </note> | ||
+ | |||
+ | Ca să afișați un șir mai complex folosiți Python ca mai jos: | ||
+ | <code> | ||
+ | student@pr706-pc:~$ python -c 'print "A"*16' | ||
+ | AAAAAAAAAAAAAAAA | ||
+ | |||
+ | student@pr706-pc:~$$ python -c 'print "A"*16 + "B"*4' | ||
+ | AAAAAAAAAAAAAAAABBBB | ||
+ | |||
+ | student@pr706-pc:~$$ python -c 'print "A"*16 + "B"*4 + "\xaa\xbb"' | ||
+ | AAAAAAAAAAAAAAAABBBB | ||
+ | |||
+ | student@pr706-pc:~$$ python -c 'print "A"*16 + "B"*4 + "\xaa\xbb"' | xxd | ||
+ | 00000000: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA | ||
+ | 00000010: 4242 4242 aabb 0a BBBB... | ||
+ | </code> | ||
+ | |||
==== Caracteristici printf ==== | ==== Caracteristici printf ==== | ||
Accesăm directorul ''printf-features/'' din arhiva de suport. | Accesăm directorul ''printf-features/'' din arhiva de suport. | ||
- | Urmăriți conținutul fișierului ''vuln.c'' și rulați executabilul ''vuln''. | + | Urmăriți conținutul fișierului ''printf_features.c'', folosiți comanda ''make'' pentru a compila și apoi rulați executabilul ''print_features''. Vedeți pentru fiecare mesaj ce se întâmplă și de ce se întâmplă. |
==== Atacuri de șir de formatare ==== | ==== Atacuri de șir de formatare ==== | ||
Line 80: | Line 97: | ||
Accesăm directorul ''format-string-attack/'' din arhiva de suport. | Accesăm directorul ''format-string-attack/'' din arhiva de suport. | ||
- | Urmăriți conținutul fișierului ''vuln.c'' și rulați executabilul ''vuln''. | + | Urmăriți conținutul fișierului ''vuln.c'' și rulați executabilul ''vuln''. Folosiți scriptul ''exploit'' pentru a exploata programul ''vuln'' în forma: |
+ | <code> | ||
+ | ./exploit | ./vuln | ||
+ | </code> | ||
+ | |||
+ | <note important> | ||
+ | Este posibil ca pe o configurație a sistemului să nu funcționeze scriptul ''exploit'' adică să nu suprascrie variabila ''v'' cu valoarea ''100'' ci cu altă valoare. Actualizați scriptul pentru a funcționa corespunzător. | ||
+ | </note> |