Thursday, July 22, 2010

[Analiz] Yet Another Remote Command Execution

Yine bir Remote Command Execution analizi ile karşındayım blog :) Code Injection yada RCE olarak sınıflandırabilirim sanırım bu zafiyeti. Herneyse kaynak kodu incelemeye başlayayım.


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

2 comments:

  1. 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

    ReplyDelete
  2. Doğ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