eWire PHP脚本存在参数任意命令执行漏洞

2007-11-17T00:00:00
ID SSV:2456
Type seebug
Reporter Root
Modified 2007-11-17T00:00:00

Description

BUGTRAQ ID: 25683

eWire是在丹麦使用的电子支付系统。

eWire处理用户请求数据时存在输入验证漏洞,远程攻击者可能利用此漏洞控制服务器。

eWire中所使用的PHP脚本ewirepcfunctions.php在调用命令行可执行程序时没有过滤URL中的paymentinfo参数:

$strEncryptedPaymentInfo = $_GET["paymentinfo"];

ewirePC_Decrypt( $ewireMerchantID,
$ewireServerURL,
$strEncryptedPaymentInfo )

ewirePC_Decrypt()是ewirepcfunctions.php中的一个函数,在ewirePC_Decrypt()中$strEncryptedPaymentInfo参数变成了$strPaymentInfo:

$strCommandLine = "decrypt \"$strMerchantID\" \"$strServerUrl\" \"$strPaymentInfo\""; $handle = popen($ewirePaymentClientFileName . " " . $strCommandLine, "r");

最终$strPaymentInfo参数没有经过检查便出现在了命令行,导致执行任意shell命令。

eWire Payment Client 1.70 eWire Payment Client 1.60 eWire


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

<a href="http://www.ewire.dk/page.asp?keyword=forsidedk&language=da" target="_blank">http://www.ewire.dk/page.asp?keyword=forsidedk&language=da</a>