微信支付商户,最近暴露的XML外部实体注入漏洞(XML External Entity Injection,简称 XXE),该安全问题是由XML组件默认没有禁用外部实体引用导致,非微信支付系统存在漏洞。
此漏洞可导致商家服务器被入侵,获得关键安全密钥后,骇客即可肆意买买买而不需要付一分钱。
而这个问题主要存在于JAVA版本SDK中的实现存在一个xxe漏洞,攻击者可以向URL构建恶意payload,根据窃取商家服务器的任何信息。
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);
参考的链接: