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>