微信支付XML解析存在的安全问题(XXE)--备忘录

微信支付商户,最近暴露的XML外部实体注入漏洞(XML External Entity Injection,简称 XXE),该安全问题是由XML组件默认没有禁用外部实体引用导致,非微信支付系统存在漏洞。

此漏洞可导致商家服务器被入侵,获得关键安全密钥后,骇客即可肆意买买买而不需要付一分钱。

而这个问题主要存在于JAVA版本SDK中的实现存在一个xxe漏洞,攻击者可以向URL构建恶意payload,根据窃取商家服务器的任何信息。

本人:org.jdom.input.SAXBuilder


InputStream in = new ByteArrayInputStream(strxml.getBytes("UTF-8"));
SAXBuilder builder = new SAXBuilder();
//XML外部实体(XXE)预防:
builder.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
builder.setFeature("http://xml.org/sax/features/external-general-entities", false);
builder.setFeature("http://xml.org/sax/features/external-parameter-entities", false);

Document doc = builder.build(in);

参考的链接:

微信:关于XML解析存在的安全问题指引

XML外部实体(XXE)预防备忘单

https://blog.csdn.net/u013224189/article/details/49759845

你可能感兴趣的:(备忘录)