####################################################################### Luigi Auriemma Applicazione: W32Dasm (era http://www.expage.com/page/w32dasm) Versioni: <= 8.93 (8.94???) Piattaforme: Windows Bug: buffer-overflow Exploitation: local Data: 24 Gen 2005 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== W32Dasm e' un interessante disassembler/debugger molto conosciuto e sviluppato da URSoft. Il programma ha moltissime funzioni e, anche se non e' piu' supportato, e' tuttora ampiamente usato da molte persone. ####################################################################### ====== 2) Bug ====== Il programma usa la funzione wsprintf() per copiare il nome delle funzioni importate/esportate dal file analizzato in un buffer di soli 256 bytes, permettendo ad un attacker di poter eseguire del codice malevolo. ####################################################################### =========== 3) The Code =========== Sfruttare il bug e' davvero molto semplice, tutto cio' di cui si ha bisogno e' un file eseguibile in cui cercare il nome di una funzione importata od esportata da modificare. Ho comunque scritto un semplicissimo proof-of-concept che sovrascrive l'indirizzo di ritorno con 0xdeadc0de: http://aluigi.org/poc/w32dasmbof.zip ####################################################################### ====== 4) Fix ====== No fix. Il programma non e' piu' supportato. #######################################################################