####################################################################### Luigi Auriemma Applicazione: Lithtech engine http://www.lithtech.com Giochi: Alien vs Predator 2 <= 1.0.9.6 Blood 2 <= 2.1 Contract Jack <= 1.1 F.E.A.R. <= 1.02 Global Operations <= 2.0/2.1 Kiss Psycho Circus <= 1.13 Legends of Might and Magic <= 1.1 No one lives forever <= 1.004 No one lives forever 2 <= 1.3 Purge Jihad <= 2.2.1 Sanity <= 1.0? Shogo <= 2.2 Tron 2.0 <= 1.042 others... Piattaforme: Windows and Mac Bug: format string Exploitation: remoto, contro server (in-game) Data: 05 Novembre 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bug 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Lithtech e' il famoso motore di gioco sviluppato da Monolith (http://www.lith.com) ed utilizzato da molti giochi. ####################################################################### ====== 2) Bug ====== Il motore Lithtech (qualsiasi versione) e' vulnerabile a diversi format string bugs. Lo sfruttamente di tali bugs "dipende dal gioco" comunque il metodo piu' semplice e comune e' attraverso l'invio di messaggi o l'utilizzo di un nickname contenente gli argomenti di formattazione (come il classico %n%n%n). Le poche eccezzioni nell'uso di questi 2 metodi sono che in alcuni giochi il metodo del nickname causa il crash dello stesso attacker mentre in altri (giusto un paio) il metodo del messaggio funziona solo sul server dedicato. Questo e' un in-game bug quindi l'attacker deve avere accesso al server (se e' protetto da password, lui deve conoscere la parola chiave corretta). ####################################################################### =========== 3) The Code =========== Lancia il server ed invia un messaggio contenente %n%n%n. Il server dovrebbe crashare immediatemente. Per un test migliore e' preferibile entrare con un client ed inviare un messaggio o (in caso di fallimento) usare un nickname con lo stesso testo. ####################################################################### ====== 4) Fix ====== No fix. Monolith e' irraggiungibile, dopo molte mail inviare per oltre un mese non ho ricevuto alcun reply. L'unico gioco attualmente patchato e' Purge Jihad dalla versione 2.2.2, solo perche' conoscendo gli sviluppatori ho potuto avvertirli e loro hanno corretto il bug filtrando i dati del client. La soluzione del "filtraggio" potrebbe essere usata anche dagli altri sviluppatori in caso il motore non venga corretto da Monolith. #######################################################################