####################################################################### Luigi Auriemma Applicazione: Battle Isle: The Andosia War http://www.bluebyte.net/battleisle-e/default.asp Versioni: <= 2.08 Piattaforme: Windows Bug: crash remoto Exploitation: remot, contro server e client Data: 09 Mar 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Battle Isle: The Andosia War (aka Battle Isle 4) e' un gioco di strategia a turni sviluppato da Cauldron (http://www.cauldron.sk) e rilasciato alla fine dell'anno 2000. ####################################################################### ====== 2) Bug ====== Il gioco non e' in grado di gestire il numero a 32 bit all'offset 8 di ogni pacchetto se e' differente da quanto atteso (solitamente 0xffffffff, 0 e 7). Il problema infatti e' la lettura di una zona di memoria non allocata che causa un crash sia nei servers che nei clients. Quella che segue e' l'istruzione che causa il crash nel server della versione demo del gioco: :0057DA56 8984932C020000 mov dword[ebx+4*edx+0000022C], eax E questo invece e' quello del client: :0057AEEC 660FB60439 movzx ax, byte[ecx+edi] ####################################################################### =========== 3) The Code =========== Questo e' un proof-of-concept che causa il crash immediato del server: http://aluigi.org/poc/bisleboom.zip Ho anche scritto un PoC per testare il crash del client anche se naturalmente il bug nel client ha una pericolosita' minima: http://aluigi.org/poc/bisle-client.zip ####################################################################### ====== 4) Fix ====== Nessun fix. Ho provato a contattare Cauldron senza successo inoltre il gioco sembra essere non piu' supportato. #######################################################################