Re: [LINUX:3698] Re: login id

Cagdas Funda (cagdas@artemis.efes.net)
Fri, 17 Jul 1998 13:00:46 +0300


SERTKAYA BARIS wrote:
>
> Bir C programi calistirdiginizda hafizanin belli bir adresine bir pointer
> yaziliyor.Onun altina programin argumanlari ve daha sonra kodu(asagi dogru
> buyuyen bir stack).Eger program uzunlugunu kontrol etmeden komut satirinda
> verdiginiz string'i aliyor ve hafizaya kopyaliyorsa programin bu bug'indan
> yararlanilip buffer overflow yaptiriliyor.Soyle:Tam o argumanin uzunlugunda
> garbage olarak bir string,ardinda da calistirmak istediginiz kod,mesela
> shell fork eden bir kod parcasi :)
> (kucuk olmasi icin genelde assembly kullaniliyor).Ama burada oyle iyi bir byte
> hesabi yapmalisiniz ki, yazdiginiz kod buffer'i doldurup, tam olarak onun
> uzerindeki return adresini overwrite etsin.Programin isi bitip o adrese tekrar
> geri geldiginde,yazdiginiz kod parcasi calistirilir.Artik kodunuz neyse :)
> Ama bunun icin yamalar da var,non-executable stack gibi...
>
> baris sertkaya
> ODTU bilgisayar muhendisligi
>

Baris iyi guzel demi$sin de root u dovup password u almak daha kolay
be... :)

-- 

dbdbdbdbdbddbdbdbdbddbdbdbdbdbdbdbdbdb q p q Cagdas Funda. p q cagdas@businessmyanmar.com p q cagdas@artemis.efes.net.tr p q p dbdbdbdbdbddbdbdbdbddbdbdbdbdbdbdbdbdb