快捷搜索:  网络  后门  CVE  渗透  木马  扫描  黑客  as

CNNVD 关于微信支付官方SDK XXE漏洞情形的通报

近日,国家信息安全漏洞库(CNNVD)收到关于微信支付SDK XXE(XML External Entity)漏洞(CNNVD-201807-083)情形的报送。成功行使该漏洞的攻击者可以遥程读取服务器文件,获取商户服务器上的隐衷数据,甚至可以支付任意金额购买商品。使用有漏洞的Java版本微信支付SDK进行支付交易的商家网站可能受此漏洞影响。目前,微信官方已经发布补丁修复该漏洞,建议用户及时确认是否受到漏洞影响,绝快采取修补措施。

1、漏洞先容

微信支付官方SDK是微信支付官方的软件工具开发包,在使用微信支付时,商家需要向微信提供一个URL用来接收异步支付效果的通知,该接口接受XML格式的数据。XML说话标准支持了与外部进行实体数据交换的特性,要是程序在解析XML时没有制约或关闭该特性,同时外部又可以传入有恶意代码的XML数据就会触发漏洞。微信支付官方提供的SDK由于编码脱漏,未关闭该XML特性。商家在其体系中要是使用该版本SDK,体系便会受漏洞影响。

微信在支付过程中,其Java版本的SDK没有关闭该XML特性,导致攻击者在获取了接收通知的URL地址的条件下,可以通过组织恶意的XML数据包发送到该URL来窃取商家网站服务器上的隐衷数据。

二、风险影响

成功行使该漏洞的攻击者可以遥程读取服务器文件,获取商户服务器上的隐衷数据,甚至可以支付任意金额购买商品。使用有漏洞的Java版本微信支付SDK进行支付交易的商家网站可能受此漏洞影响。

3、修复建议

目前,微信官方已经发布补丁修复该漏洞,建议用户及时确认是否受到漏洞影响,绝快采取修补措施,详细措施以下:

1.要是后台体系使用了官方SDK,请更新SDK到最新版本,链接以下:

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1

2.要是有体系提供商,请联系提供商进行核查以及升级修复;

3.要是是自研体系,请联系手艺部门按下列指引核查以及修复:

XXE漏洞需要在代码中进行相应的配置,不同说话配置的内容不同,下面提供了几种支流开发说话的配置指引:

【PHP】

libxml_disable_entity_loader(true);

【JAVA】不同java组件修复方案不同样,黑客技术,请参考OWASP修复建议:

https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#Java

【.Net】

XmlResolver = null

【Python】

from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))

【c/c++(经常使用库为libxml2 libxerces-c)】

【libxml2】:  确保关闭设置选项:XML_PARSE_NOENT 以及 XML_PARSE_DTDLOAD

2.9版本以上已修复xxe

【libxerces-c】:要是用的是XercesDOMParser:

XercesDOMParser *parser = new XercesDOMParser;
parser->setCreateEntityReferenceNodes(false);

要是是用SAXParser:

SAXParser* parser = new SAXParser;
parser->setDisableDefaultEntityResolution(true);

要是是用SAX2XMLReader:

SAX2XMLReader* reader = XMLReaderFactory::createXMLReader();
parser->setFeature(XMLUni::fgXercesDisableDefaultEntityResolution, true);

此外,针对使用XML进行数据交换的收集体系(如:第三方支付平台等),建议相干体系厂商对解析处理XML数据的功能代码进行安全检查,可参考上述要领修复漏洞,及时消除漏洞危害。

本通报由CNNVD手艺支撑单位——深圳市腾讯计算机体系有限公司、北京长亭科技有限公司、北京华顺信安科技有限公司提供支持。

CNNVD将继续跟踪上述漏洞的相干情形,及时发布相干信息。若有需要,可与CNNVD联系,联系方式:cnnvd@itsec.gov.cn。

*

您可能还会对下面的文章感兴趣: