网站大量收购独家精品文档,联系QQ:2885784924

SHOPEX最漏洞利用及解决方案.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SHOPEX最漏洞利用及解决方案

  漏洞原理:   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.dwtorderid=.$tmp_orderno.state=.$state.strinfo=.urlencode($strinfo)); ?   假设在 根目录下有个include文件夹,里面有PayFunction.php文件(这是我们自己构造的,当然文件的内容可是小马也可是大马 呵呵)   我们用如下方法就可以利用之   简单的说远程攻击者可以利用漏洞以WEB进程权限执行任意PHP命令。具体情节是npsout_reply.php脚本对用户提交的npsout_root_path参数缺少过滤

文档评论(0)

weg665 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档