好得很程序员自学网

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

被小伙伴们蠢哭了的那些事儿:找回密码篇 - 网

郑昀 创建于2014-01-12;

最后更新于2014-01-13.

 

找回密码功能是漏洞传统重灾区,下面列出两个经典错误点,请引以为戒吧Web开发工程师们!

Web安全: 一)以为用户不会抓包不会看源码不会分析表单参数,HTML文档和表单里想写啥就写啥 1)某手网: +手机App的忘记密码功能: 首先,通过抓包分析,发现密码重置接口可以Web访问;其次,填入手机号码提交, 服务器端的响应中居然包含明文短信验证码 ,虽然是在JavaScript中的注释里; 补充案例:绝非个案。如第三方支付平台支付通也干过, http://www.2cto.com/Article/201306/218556.html ;走秀网干过, http://www.2cto.com/Article/201210/159135.html ; 2)PPS: +网页版忘记密码功能: 贴心地实现了[重新发送找回密码邮件]功能;但是,不幸地 在这个GET请求的URL里,目标email参数是明文的 ;从而可以将任意用户的密码重置邮件发给指定邮箱; 3)新网互联: +网页版忘记密码功能: 页面虽然展示的是星号遮挡的邮箱地址,但HTML文档构造的 表单参数里却使用邮箱明文 ,最终导致土豆网域名被劫持; 4)搜狐: +网页版找回密码功能: 找回密码时要回答[密码提示问题];但是工程师把 答案明文 写在 textarea 控件的JS校验函数里了,导致可以重置任意搜狐用户密码; 二)把MD5(key)加密当成神器,殊不知在MD5爆破库面前等于说明文传递 1)奇虎360: +网页版找回密码功能: 360的找回密码邮件里,重设密码地址格式为:http://i.360.cn/findpwd/setpwdfromemail?vc= %一个MD5加密串% &u=blabla%40gmail.com; 利用MD5爆破库逆向解密后发现,这个MD5加密串是一个类似于1339744000的数字,很像是UNIX时间戳 ; 白帽子进一步验证后猜测,用户找回密码时,系统将此时的UNIX时间戳,与帐号绑定,记录在密码重置队列里,修改该用户的密码时会验证输入的vc参数; 看似合理,但360工程师忽略了一个细节:假如这个时间戳是新生成的,攻击者就能在一定时间段内进行暴力破解,给定任意邮箱,很快就能算出一个有效的重置密码链接; 2)某牛网: +注册激活邮件功能: 注册某牛网后,系统发的注册邮件里,激活URL里id参数实际上是用户的userid, str参数则是MD5(id)加密串 ,如下图所示; 这样能注册任意邮箱并激活,或遍历所有整数id激活;  

 

参考资源:

1,2011,陈皓, 你会做Web上的用户登录功能吗? ;

2,2013,乌云知识库, 密码找回功能可能存在的问题 ;

3,2013,郑昀, Web开发基本准则-55实录-Web访问安全 。

-over-

查看更多关于被小伙伴们蠢哭了的那些事儿:找回密码篇 - 网的详细内容...

  阅读:81次