xxxxxxxxxxxx.php
...
$command = 'HTTP_COOKIE="'.getStringFromServer('HTTP_COOKIE').'" '.
'REMOTE_ADDR="'.getStringFromServer('REMOTE_ADDR').'" '.
'QUERY_STRING="'.$query_string.'" '.
'SERVER_SOFTWARE="'.getStringFromServer('SERVER_SOFTWARE').'" '.
'SCRIPT_NAME="'.getStringFromServer('SCRIPT_NAME').'" '.
'HTTP_USER_AGENT="'.getStringFromServer('HTTP_USER_AGENT').'" '.
'HTTP_ACCEPT_ENCODING="'.getStringFromServer('HTTP_ACCEPT_ENCODING').'" '.
'HTTP_ACCEPT_LANGUAGE="'.getStringFromServer('HTTP_ACCEPT_LANGUAGE').'" '.
'PATH_INFO="'.$path.'" '.
'PATH="'.getStringFromServer('PATH').'" '.
'HTTP_HOST="'.getStringFromServer('HTTP_HOST').'" '.
'DOCUMENT_ROOT="'.getStringFromServer('DOCUMENT_ROOT').'" '.
...
passthru($command);
...
getStringFromServer fonksiyonunda herhangi gibi bir filtreleme vs.. yok. Daha da konuşmaya gerek yok zaten :) HTTP başlıklarıyla (örn: Cookie, User-Agent, Accept-Encoding, Accept-Language) hedef üzerinde komut çalıştırabilirsiniz. Exploit? 1-2 güne bir reverse shell hortlatan bir remote exploit yazar yayınlarım herhalde. Az da olsa deneyimlerimden yola çıkarak belirtiyorum ki, web uygulamalarını ve zafiyetlerini hafife almamak gerekir.
cb
Türkiye bazlı bir çok script'e bile bu tip açıklar mevcut işin ilginç yanı mesela adam güvenlik var diyor , aşıyorsun buraya kadar normal sonra diyorsun ki bey efendi bak burada böyle bi hata vs var diyor biz biliyoruz onu fixleyeceğiz vs 2 hafta sonra rastgele aklına geliyor bi bakıyorsun hala mevcut :) Sonrada kendi içinde diyorsun ki bu scriptin kaderidir warez forumlarına düşmek.. he he
ReplyDeleteDoğrudur insanlar hala kabul etmiyor güvenliğinde yazılım geliştirme sürecinin bir halkası olduğunu o yüzden artık pek takmıyorum sadece yayınlıyorum :)) bu arada yazıda 1-2 güne exploit yayınlarım demişimde yalan olmuş acayip üşeniyorum user-agent'a bi komut çakıp istek yapmaya.
ReplyDelete