如何预防微信2018微信0.01支付漏洞洞

您还可以使用以下方式登录
当前位置:&>&&>& > 这个微信支付的漏洞太吓人! 直接无上限扣款, 全程不需要输入密码
这个微信支付的漏洞太吓人! 直接无上限扣款, 全程不需要输入密码
今天我看到一条新闻,大致说的是宿迁的刘先生,他家8岁的孩子在玩他手机的时候,一不小打开微信钱包里的“公益”然后替他捐掉了17000元。“我这手机本身是绑定银行卡的,按理说应该有密码提示和验证码,转账时,应该会发一个验证码到我另外一个手机上面,结果验证码也没有发送,钱就莫名其妙地被捐了。”看到这条新闻之后,我也很困惑,因为用微信支付的时候,就算是几元钱也需要我们输入密码,但这次的支付行为却完没有输入密码这个过程,到底是怎么了?经过我的多次尝试,发现「捐款完全不需要支付密码」What?这到底是怎么一回事?大家尝试过后可以发现,随便点击腾讯公益里面的一个项目,然后点击「我要捐款」,随后并没有弹出支付密码的窗口,而是将页面跳转到了一个苹果手机自带浏览器上,浏览器打开的页面直接就提示支付成功,即不需要支付密码,也不需要任何手机验证码。这也太吓人了,如果小朋友随便用手机捐款的话,这还得了啊!!而且让我感到很惊讶的是,如果未成年不小心在游戏中大量花费,这还能通过法律途径追回来。但这次刘先生却讨不了这个钱。他后来问了下捐款方中国扶贫基金会。然后基金会表示正在对此事进行调查。“如果是发生系统发生故障,他们会退还这笔钱,但如果是孩子误捐的话,这笔钱将不会被退回。”这件事发生之后,在网友之间引起了巨大的争议,大家来看看。1、连儿童误捐都不肯吐出来,你还指望他们会真的愿意捐助有困难的人?未成年人,没有事行为能力,所以他的捐款行为是无效的,钱当然可以退回,这再次证明中国的慈善机构是个什么鬼?2、这应该是腾讯钱包的重大安全漏洞(微信QQ都是),很多手机的微信QQ钱包里面有大量的免密支付选项(无上限额度),大家一定要在钱包支付设置里手动勾选掉!3、吃进去了就不那么好吐了。公益性的东西在天朝总是觉得不太放心啊!4、刚才试了下腾讯公益并不是只有一个入口,腾讯公益的公众号也是入口,直接给转发到朋友圈也能形成入口,目前看来这个恶意陷阱除了解绑卡之外无解。5、我之前也相信,每年生日都买些关爱儿童捐款,给壹基金捐了不少,后面有次想给妹子面前装下逼,就给捐款时候让他们给我开个发票,结果就发现问题了,各种理由不开,后来就感觉有问题再也没捐过了。6、公益项目怎么搞的像诈骗!7、确实如此,刚刚用微信钱包进去试了一下,对方已经给你勾选了免密码支付,我去,差点就进坑了,腾讯吃相太难看。这么搞以后我都能把全公司的人的钱包全捐空!8、乱七八糟的这基金会那基金会红十字会,首先养肥的是一群官僚和工作人员。每一笔捐款,他们都要收取一定比例的管理费,剩下的钱他们去投资或者理财产生不菲收益继续大家分!最后每年象征性的搞几个所谓公益项目,就连公益项目也存在各种腐败! 百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网92to.com,您的在线图书馆!
欢迎转载:
推荐:    从最近的微信支付看XXE漏洞 - FreeBuf互联网安全新媒体平台 | 关注黑客与极客
从最近的微信支付看XXE漏洞
共169013人围观
,发现 5 个不明物体
*本文作者:路上路人路过,属于FreeBuf原创奖励计划,未经许可禁止转载
先说下写这篇文章的初衷吧,最近微信支付java_sdk刚爆发了一次xxe漏洞,然后领导赶快用自家的静态代码审计工具做了审计(这里我就不报名字,本来可以帮公司推广下产品是很好的,但我怕本文过于基础会被各位大佬喷出翔来,到时候有辱“司”门就真是罪过罪过了)。
发现能成功找出漏洞点,如下图。
到目前本来是件极好的事情,但是发现使用自己规则修复后依然能扫描出漏洞,这就很能说明问题,于是老大让我对微信支付漏洞做漏洞研究并找出产品出问题的原因。所以才有了这篇文章。由于本文的初衷是为了改进产品,所以本文并不是为了深入研究xxe漏洞,更加适合开发人员看。
微信支付的sdk中提供了WXPayUtil这个工具类,该类中实现了xmltoMap和maptoXml这两个方法,而这次的微信支付的xxe漏洞爆发点就在xmltoMap方法中。
该方法是为了将xml格式的字符串strXML转化为map。由于strXML可由攻击者控制,且程序未作任何防护措施(如禁止引用外部实体;过滤关键字符串等),导致恶意攻击者可利用外部实体注入读取服务器上的文件。当攻击者获取支付加密所用的安全密匙后,完全可以实现0元支付商品。
这里先以微信sdk中的xmlToMap方法为例,复现该xxe漏洞。(由于要完整的实现微信零元支付,需要写比较完整的程序对接微信支付接口,比较耗时间,暂时先不做)。
出现问题的代码是:
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();org.w3c.dom.Document doc = documentBuilder.parse(stream);
生成documentBuilderFactory后直接去解析流。
构造xml格式的字符串如下:
&?xml version='1.0' encoding='utf-8'?&&!DOCTYPE xdsec [&!ELEMENT methodname ANY&&!ENTITY xxe SYSTEM 'file:///c:/windows/win.ini'&]&&methodcall&&methodname&&&/methodname&&/methodcall&
这样mapToXml中DOM解析器解析该字符串时,会访问外部实体中的SYSTEM属性中标识的URL,并将读取的文件内容放入methodccall节点中。然后取出放入map中(实际场景中map中的值最后会被攻击者所获取,我们这里以在控制台输出为例),能成功读取系统文件。
一、完全禁用DTDs,生成documentBuilderFactory后对feature进行设置
documentBuilderFactory.setFeature(““,true);
效果如下:
程序会报错,提示将该属性设为true。
二、生成documentBuilderFactory后对feature进行设置&
documentBuilderFactory.setXIncludeAware(false); &&&&&&&&&documentBuilderFactory.setExpandEntityReferences(false); &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&documentBuilderFactory.setFeature("",false); &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&documentBuilderFactory.setFeature("", false);
效果如下:
程序虽然不会报错,但是已经读取不出系统文件中的内容了。
三、对关键词做过滤,如ENTITY、 DOCTYPE
对以上三种防范方式做分析:推荐使用第一种,能处理掉绝大多数的xxe漏洞;当有需求不能全部禁用掉DTD时,使用第二种方法;不建议使用第三种方法,如果不然很容易被绕过,如使用ENTIENTITYTY等等情况来绕过。
微信支付sdk中使用的是原生的dom解析xml,接下里分别复现使用原生SAX解析xml、使用dom4j解析xml、使用jdom解析xml这三种实现方式的xxe漏洞以及修复方法(修复原理是一样的,方法都类似的,但为了方便之后产品规则的完善,这里全部列举出来)
使用原生SAX解析xml
问题在于生成SAXParserFactory后直接去解析xml了,修复方法添加属性
sf.setFeature(““,true);
效果如下:
使用dom4j解析xml:
SAXReader reader &= new SAXReader();InputStream stream = new ByteArrayInputStream(strXML.getBytes("UTF-8"));Document doc = reader.read(stream);
修复方法:
reader.setFeature(““,true);
效果如下:
使用Jdom解析xml
SAXBuilder &builder&= new&SAXBuilder();Document doc&= builder.build(stream);
修复方法如下:
builder.setFeature("",true);
效果如下:
最后是对SkyJava审计WxPayAPI结果的分析:
SkyJava是报了两个xxe漏洞,分别是WXpayUtil.java中的mapToXml和xmlToMap这两个方法。其中这次的微信支付xxe漏洞爆发点是在xmlToMap,所以两个中一个是正确的一个是误报。先分析误报:
该方法是实现将map中的键值对取出后生成xml的节点,并将其放在根节点&xml&&/xml&中,像这种情况,就算map是受攻击者控制的,生成xml的时候也不会构造出外部实体的引入。其实xxe漏洞都是解析的时候出现问题,单单只是生成有问题的xml,并不能确定是否存在xxe漏洞,关键还是得看程序去解析它的时候是否有安全措施(如上面所说的添加禁止外部实体引入的属性等)。
对于该种误报我的建议是:不能仅仅因为没有设置安全属性就判断存在漏洞,尽量是先判断存在解析xml的情况下再根据
1.&是否有设置安全属性
2.&Source是否安全
来判断是否存在漏洞。(感觉不是很好实现,以上两段话主观性比较强,仅做参考…..)
再说下SkyJava报的另外一个点,爆发点确定的是正确的。
但头说修复之后还是会报xxe漏洞,所以我看了下修复之后的方法。
修复的方法中将属性设为true。在本地测试效果如下,发现并不能防御xxe漏洞,所以不建议使用该方法。
再看官方微信支付sdk修复这个xxe漏洞之后的方法是怎么样的
是使用了一个专门的xml工具类来生成DocumentBuilder
该类中设置了一些安全属性,应该是微信支付为了保险起见吧,同时采用我上面所说的修复方法一和二(毕竟没有绝对的安全)。但在SkyJava的规则上,我认为审计的时候只要采举了其中的一种就可以认为不存在xxe漏洞,如果规则上认为两种措施都用才算不存在漏洞的话可能会导致误报率较高(毕竟很多程序都只采用第一种方法防范xxe)。
最后,我还是想说我第一次在FreeBuf上发表文章,望各位大佬站在培养新人的点上,轻喷轻喷!
*本文作者:路上路人路过,属于FreeBuf原创奖励计划,未经许可禁止转载
必须您当前尚未登录。
必须(保密)
这家伙太懒,还未填写个人描述!
关注我们 分享每日精选文章
可以给我们打个分吗?微信支付漏洞怎么回事_百度知道
微信支付漏洞怎么回事
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
PingWest品玩7月4日报道,昨日,有用户在国外安全社区公布了微信支付官方SDK(软件工具开发包)存在的严重漏洞,此漏洞可导致商家服务器被入侵,一旦攻击者获得商家的关键安全密钥,就可以通过发送伪造信息来欺骗商家而无需付费购买任何东西。该用户还晒出了如何利用漏洞进行买买买的截图,利用这个漏洞,黑客不仅可以0元购买,还有倒卖用户信息的可能。对此,微信支付方面未发布相关安全公告。腾讯方面在向媒体回应时表示,“微信支付技术安全团队已第一时间关注及排查,并于中午对官方网站上该SDK漏洞进行更新,修复了已知的安全漏洞,并在此提醒商户及时更新。请大家放心使用微信支付。”
采纳率:85%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。专业提供QQ活动,QQ新闻,QQ技巧,电脑技巧以及其他日常信息,让我们的Q生活更加精彩!
下次免登录
当前位置:&>&&>&
微信支付被曝有漏洞是怎么回事 微信支付漏洞已修复 商户可放心使用
微信支付被曝有漏洞是怎么回事 微信支付漏洞已修复 商户可放心使用
最近微信支付在网上被曝光了一些漏洞 被人直接买买买不用花钱
很多朋友还不知道这是怎么一回事 下面我们就来了解一下详细情况吧
有网友在国外安全社区公布了微信支付官方SDK(软件工具开发包)存在的严重漏洞
此漏洞可导致商家服务器被入侵 一旦攻击者获得商家的关键安全密钥
就可以通过发送伪造信息来欺骗商家而无需付费购买任何东西
对此 微信支付方面未发布相关安全公告 腾讯方面在向媒体回应时表示
&微信支付技术安全团队已第一时间关注及排查,并于今天中午对官方网站上该SDK漏洞进行更新,
修复了已知的安全漏洞,并在此提醒商户及时更新。请大家放心使用微信支付。&
本站最新更新
··········

我要回帖

更多关于 微信怎样扫二维码付款 的文章

 

随机推荐