[OT] Fwd: Advisory 15/2004: Cyrus IMAP Server multiple remote vulnerabilities

Cezary Krzyżanowski dhubleizh w o2.pl
Pią, 26 Lis 2004, 13:31:09 CET


Paweł Sakowski wrote:
> To idzie jakoś tak:
> 
> #include <string.h>
> void fun(const char *str) {
> 	char buf[5];
> 	strcpy(buf, str);
> }
> int main() {
> 	fun("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
> 	return 0;
> }
> 
> - "A*" nadpisze ci adres powrotu z fun
> - dostaniesz SIGSEGV bo funkcja zechce wrócić pod 0x41414141
> - pisząc stringa "A*" trochę sprytniej można zapodać adres powrotu do
> dowolnego kodu w przestrzeni adresowej programu
> - ten kod się wykona po powrocie z fun
> - w szczególności w tym samym stringu możesz zawrzeć dowolny własny kod
> - dowolny twój kod się wykona
> - a teraz wyobraź sobie, że argument fun pochodzi z sieci i w żaden
> sposób nie sprawdzono prawdziwości założenia, że ma on być krótszy niż
> 5-1 oktetów

No trochę za duż tych A i rzeczywiście wyskakuje Naruszenie ochrony 
pamięci, ale jak jest tylko o parę za dużo, to rzeczywiście można 
nadpisać adres powrotu i wsyłać go dzieś w kosmos...hm....no to już 
tylko krok do zhackowania microsoftu :P Kolejny dowód na to, że 
hackerstwo to dłubanie w bitach :P

Pozdrawiam
Cz w rny







Więcej informacji o liście dyskusyjnej pld-devel-pl