Skip to content

mick0974/auto_tool

Repository files navigation

Auto format string tool

Auto format string tool è un tool scritto in python che, sfruttando una vulnerabilità format string presente nel programma target, calcola la stringa con padding necessaria per la scrittura di un valore ad uno specifico indirizzo di memoria.
Per il corretto funzionamento del tool è richiesto che meccanismi di sicurezza come stack protector e ASLR siano disabilitati, così che sia possibile calcolare il padding corretto attraverso più esecuzioni del programma target.

Requisiti

  • python 3.6
  • pwntools 4.6

Funzionamento

Il tool può essere eseguito da line di comando con:

python main.py taget target_address target_value input_file

La carella test contiene alcuni programmi C con cui testare il tool. Per ciascun programma sono presenti: il file binario, il file di input .json e un file compile.sh che contiene il comando, con relativi parametri, usato per compilare il binario.

La cartella results contiene un esempio di file fi log generati dal tool per i vari programmi di test.

Il file test.sh contiene il comando di esecuzione del tool adattato per i binari forniti. In caso di ricompilazione, le variabili target per i vari test sono:

  • commandline.c -> variabile a cui scrivere: target, usare indirizzo a tempo di esecuzione
  • secret_number.c -> variabile a cui scrivere: secret_num
  • simil_stonks.c -> variabile a cui scrivere: target
  • snprintf1.c -> variabile a cui scrivere: i, usare indirizzo a tempo di esecuzione
  • snprintf3.c -> variabile a cui scrivere: i
  • test1.c -> variabile a cui scrivere: twentythree
  • vuln.c -> variabile a cui scrivere: target

Per i programmi in cui è specificato che l'indirizzo da usare a tempo di esecuzione, è stato fatto in modo che questo venga stampato con una printf(). In tutti gli altri casi, l'indirizzo della variabile a cui scrivere può essere ottenuto con objdump -t binario.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published