当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0136903

漏洞标题:微信公众号管理员后台点击我发的消息链接,公众号介绍等设置就会被修改(绕过csrf防护)

相关厂商:腾讯

漏洞作者: 呆子不开口

提交时间:2015-08-25 18:16

修复时间:2015-10-09 19:38

公开时间:2015-10-09 19:38

漏洞类型:CSRF

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-25: 细节已通知厂商并且等待厂商处理中
2015-08-25: 厂商已经确认,细节仅向厂商公开
2015-09-04: 细节向核心白帽子及相关领域专家公开
2015-09-14: 细节向普通白帽子公开
2015-09-24: 细节向实习白帽子公开
2015-10-09: 细节向公众公开

简要描述:

微信公众号管理员在后台点击我发给他的链接,他的简介、头像、隐私设置、地址等设置就会被修改,还可以添加用户分组

详细说明:

微信公共号后台的CSRF防护是有的,token防护加referrer限制,看起来很完美
但是,由于设计的一些不合理,仍然可被csrf攻击,以下是详情
1、公众号后台的token的设计问题
公众号后台的csrf防护的token直接在后台所有操作的url中都会出现。这样token就有可能被http包里的referer字段发往第三方而泄露。我在以前写过的文章 http://drops.wooyun.org/web/7112 里也提过这个问题的风险,当时我说削弱了防护体系。一旦其他的防护有问题的时候,这个问题就会被利用
2、先偷TOKEN
发送一个自己可控内容的https(公众后台是https的,只给https传递referrer)的url给微信公众账号,一旦他点击,管理后台url里的token就会发给我们。
直接给公众号发送url,后台是不会识别的。需要一个小技巧来给后台发链接
把链接到微信的聊天框中然后访问,然后微信内置浏览器会打开这个页面,然后再收藏这个页面
然后再给公众号发收藏里的这个页面,这样在管理员的后台看到的就是一个富媒体格式的链接的
3、某些处可绕过referrer
微信公众号后台的操作都是post的,而且限制了referrer为本域
但是有一些操作,比如公众号设置里的介绍、头像修改、添加分组、地址修改、隐私设置是否允许别人搜索的设置等地方的请求,虽然看起来也是post的
但是你如果把post请求改成get,body的内容放到get参数中,这样的请求服务端也接受
修改介绍的请求:

https://mp.weixin.qq.com/cgi-bin/setuserinfo?action=intro&t=ajax-response&token=589115843&lang=zh_CN&f=json&ajax=1&random=0.3911454190965742&intro=hacked%20by%20shidada


添加分组

https://mp.weixin.qq.com/cgi-bin/modifygroup?t=ajax-friend-group&token=589115843&lang=zh_CN&f=json&ajax=1&random=0.0741190540138632&func=add&name=helloasasas


关闭允许他人搜索到的设置

https://mp.weixin.qq.com/cgi-bin/setuserinfo?t=ajax-response&token=589115843&lang=zh_CN&f=json&ajax=1&random=0.5444546448998153&action=search&open=0


而且改成get请求后,referrer限制允许了空referrer的情况,这样我们的利用就更不易被察觉了,因为不需要直接发此链接让受害者点了
4、怎么利用
构造一个https页面,里面是伪装的内容,并且会发出空referer的带着token的get请求(可使用iframe动态加载form来发get请求)来完成如上一些敏感操作

漏洞证明:

拿了一个朋友的公众账号做测试,她不知情
给公众账号发链接

QQ截图20150825180657.jpg


她点击后介绍被我修改成"hacked by koreans"

470265059.jpg


由于她被我攻击,所以她要求我补偿她给她推广公众号,她的号和照片如下
加他的公众账号吧,你的人生开始不再虚度

QQ截图20150825175717.jpg


62107806jw1ev3ha4n6maj218g18g1bf.jpg


修复方案:

保护好token,不要放在get中
post的请求不要让get发

版权声明:转载请注明来源 呆子不开口@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-08-25 19:37

厂商回复:

非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-08-25 19:38 | Noxxx ( 普通白帽子 | Rank:509 漏洞数:41 )

    前排围观

  2. 2015-08-25 19:44 | niliu 认证白帽子 ( 核心白帽子 | Rank:1540 漏洞数:207 | 逆流而上)

    前排围观

  3. 2015-08-25 19:50 | 机器猫 ( 普通白帽子 | Rank:1193 漏洞数:258 | 爱生活、爱腾讯、爱网络!)

    前排围观

  4. 2015-08-25 19:59 | scanf ( 核心白帽子 | Rank:1282 漏洞数:190 | 。)

    留名围观

  5. 2015-08-25 20:01 | Xmyth_夏洛克 ( 普通白帽子 | Rank:609 漏洞数:83 | 啥都不会)

    前排围观

  6. 2015-08-25 20:03 | Looke ( 普通白帽子 | Rank:649 漏洞数:94 | 可顺势而为,何必逆水行舟)

    前排围观

  7. 2015-08-25 20:05 | Submit ( 普通白帽子 | Rank:375 漏洞数:86 | 666)

    前排围观

  8. 2015-08-25 21:05 | 暮偶 ( 路人 | Rank:5 漏洞数:2 | 代码写的好累.)

    前排围观

  9. 2015-08-25 21:14 | qglfnt ( 普通白帽子 | Rank:158 漏洞数:37 | 白天不懂夜的黑)

    火钳留名

  10. 2015-08-25 21:35 | 柱子 ( 路人 | Rank:25 漏洞数:4 | 专注APP)

    留名围观

  11. 2015-08-25 22:40 | lufsy ( 路人 | Rank:11 漏洞数:3 | 自由,分享,共进)

    mark

  12. 2015-08-25 22:56 | Chinalover ( 路人 | Rank:16 漏洞数:4 | 你看得到我打在屏幕上的字,却看不到我落在...)

    后排围观

  13. 2015-08-25 22:56 | Jinone ( 普通白帽子 | Rank:128 漏洞数:28 | 安全盒子招人ing 有意请私信)

    没位置了

  14. 2015-08-25 23:18 | 小小泥娃 ( 路人 | Rank:20 漏洞数:4 | 高二)

    没位置了

  15. 2015-08-25 23:33 | 终于明白 ( 路人 | Rank:4 漏洞数:4 | 菜鸟·····)

    膜拜大牛~~~

  16. 2015-08-26 08:42 | 浮萍 ( 普通白帽子 | Rank:555 漏洞数:118 | 默默潜水)

    不敢点你的链接了