网站地图    收藏   

主页 > 后端 > 网站安全 >

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

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] 由这个 http://www.2cto.com/Article/201308/239719.html想到去看看有没有其他问题,发现新消息提醒的绑定邮箱那边CSRF没有过滤,或者过滤不严。另外email验证链接那边,可能有逻辑问题。结合这两...

由这个 http://www.2cto.com/Article/201308/239719.html 想到去看看有没有其他问题,发现新消息提醒的绑定邮箱那边CSRF没有过滤,或者过滤不严。另外email验证链接那边,可能有逻辑问题。结合这两点,可导致用户的私信、新评论、系统消息提醒等发送至攻击者邮箱。

页面http://www.tudou.com/my/setting/notifyMe.action里的一个【以上消息可用下面方法提醒我】form

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



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


GET http://message.tudou.com/updateEmailSetting.html?callback=jQuery16405471757907992225_1375018012075&isSend=1&frequency=14&email=XXX%40email.com&_=1375018012464 HTTP/1.1
Accept: */*
Referer: http://www.tudou.com/my/setting/notifyMe.action
Accept-Language: zh-cn
User-Agent: 。。。
Accept-Encoding: gzip, deflate
Host: message.tudou.com
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.com/2013/07/22/answer-to-the-friday-puzzle-215/

http://www.squarefree.com/2012/04/16/car-free-apps/

都可以攻击成功

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

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

callback=jQuery16405471757907992225_1375018012073

&_=1375018012154

callback=jQuery16405471757907992225_1375018012075

&_=1375018012464

callback=jQuery16408171587823084333_1375017781479

&_=1375017829130

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

callback=jQuery16408171587823084512_1375017782512

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

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


 


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

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

但是这时候,用户土豆账户的提醒邮箱,已经跟黑客的提醒邮箱绑定了。


修复方案:


1. CSRF防御那边你们更清楚(比如限制refer只能是http://www.tudou.com/my/setting/notifyMe.action)。。。具体哪个没做好,请告诉我一声。

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

http://message.tudou.com/checkEmail.html?uid=XXX&token=XXXX

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

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论