好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

土豆网新消息提醒的绑定邮箱CSRF漏洞+email验证链

由这个 http://HdhCmsTest2cto测试数据/Article/201308/239719.html  想到去看看有没有其他问题,发现新消息提醒的绑定邮箱那边CSRF没有过滤,或者过滤不严。另外email验证链接那边,可能有逻辑问题。结合这两点,可导致用户的私信、新评论、系统消息提醒等发送至攻击者邮箱。 页面 http://HdhCmsTesttudou测试数据/my/setting/notifyMe.action 里的一个【以上消息可用下面方法提醒我】form

正常状态下很多消息提醒都被选中:(用户可以选择发送频率、需要提醒的邮箱)

正常状态这个form请求的一个sample如下:

GET http://message.tudou测试数据/updateEmailSetting.html?callback=jQuery16405471757907992225_1375018012075&isSend=1&frequency=14&email=XXX%40email测试数据&_=1375018012464 HTTP/1.1 Accept: */* Referer: http://HdhCmsTesttudou测试数据/my/setting/notifyMe.action Accept-Language: zh-cn User-Agent: 。。。 Accept-Encoding: gzip, deflate Host: message.tudou测试数据 Connection: Keep-Alive Cookie: 。。。

isSend,frequency,email分别对应截图的几个input。

 

根据这个请求,可能的CSRF防御点在refer字段,或者jQuery参数部分(这个可能吗?菜鸟表示没研究)。

1。针对可能的refer防御

找个可以放<form>的博客系统,wordpress or blogbus? 或者GAE, SAE

如果这些第三方hosting网站不行的话,可以用 黑客 自己的blog website。

我测试了下面两个refer:

http://richardwiseman.wordpress测试数据/2013/07/22/answer-to-the-friday-puzzle-215/

http://HdhCmsTestsquarefree测试数据/2012/04/16/car-free-apps/

都可以攻击成功

2.针对可能的jQuery随机参数

我试了几条正常情况下产生的mapping:

于是,尝试随机构造如下的作为攻击向量:

&_=1375017849124 漏洞 证明:结合上述第2点和表单input,制造attack. html (email参数里写黑客控制的参数),放到wordpress上,或者黑客自己的网站(类似squarefree测试数据)

然后将这样的地址放到微博上传播,一旦土豆用户点击打开attack.html(登录状态下),就会有如下邮件发到黑客邮箱。

  然后,黑客在不登录土豆的状态下点击这个email,也会提醒你绑定邮箱成功(所以更严重的漏洞可能是这边),虽然会再跳到登录页面(http://login.tudou测试数据/login.do?noreg=ok&service=http://HdhCmsTesttudou测试数据/my/tui/got/)。

3秒跳转,来不及截图。。

但是这时候,用户土豆账户的提醒邮箱,已经跟黑客的提醒邮箱绑定了。 修复方案: 1. CSRF防御那边你们更清楚(比如限制refer只能是http://HdhCmsTesttudou测试数据/my/setting/notifyMe.action)。。。具体哪个没做好,请告诉我一声。

2. 提醒邮箱绑定认证那边,需要在用户登录情况下才生效

http://message.tudou测试数据/checkEmail.html?uid=XXX&token=XXXX

这样的提醒绑定仅仅当用户登录才生效。。

查看更多关于土豆网新消息提醒的绑定邮箱CSRF漏洞+email验证链的详细内容...

  阅读:45次