首页
社区
课程
招聘
转载:微信公众号管理员后台点击我发的消息链接,公众号介绍等设置就会被修改(绕过csrf防护)
发表于: 2015-10-11 00:58 1489

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

2015-10-11 00:58
1489
转载自 http://www.wooyun.org/bugs/wooyun-2015-0136903

微信公共号后台的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参数中,这样的请求服务端也接受

修改介绍的请求:

code 区域
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

添加分组

code 区域
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

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

code 区域
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请求)来完成如上一些敏感操作

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//