[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