最近发的1个弱口令和2个SQL注入的漏洞都走了小厂商。然后思考原因后,感觉这次如果只发个重置密码,肯定是小厂商流程,如果只发个XSS或者CSRF肯定是不能通过的节奏。所以三个就一起发了,看看到底有啥利用和危害。目测影响全站30多万用户,还可以蠕虫并留永久后门,这次能给走个大厂商流程么?
一、首先是密码重置漏洞。
漏洞标题:爆破重置任意用户密码
缺陷URL:http://www.zhongchou.cn/user-modifypassword
1.进入网站找到【登录】按钮进入登录页面,点击登录框下面那个的【忘记密码】。
2.进入密码重置流程,然后【通过手机号码找回】。
3.输入手机号码,然后【获取短信校验码】。
4.手机将会收到一个6位数字的短信校验码,这里随意的填写了一个短信校验码,然后点击【提交】同时用burpsuite进行抓包。
5.抓包的请求如下:
6.那么,我开始对校验码参数vcode进行暴力破解了!
7.通过返回的的length或者返回的内容可以得出正确的短信码。
8.由于此处的设置,是预先填入了新密码了,所以只要成功爆破了正确验证码的请求,就等于是已经成功重置了密码了。
修补措施:
1.尽量不要将验证码设计为6位纯数字,如果设计,建议8位以上比较好。
2.短信码可以为纯数字,甚至4位的纯数字也没问题,但是应该限制连续错误的次数,比如连续输出错误10次就锁定本次重置密码的请求。
3. 或者设置页面是图片验证码,这样也可以防止暴力破解这种漏洞。
二、其次是CSRF漏洞。
漏洞标题:修改个人资料CSRF漏洞
缺陷URL:http://www.zhongchou.cn/settings
修改操作的请求如下:
由于请求没有校验referer信息,导致可利用外部POC构造form表单,从而CSRF执行别人的修改操作。POC测试代码如下:
利用方式:将构造好的含有CSRF攻击代码的外部POC的URL直接发送给目标账户,只要目标点击了就会中招。
还可将缺陷URL以<img src='构造好的外部POC(含有CSRF缺陷)地址' > 这种形式插入到网站的其他地方,只要用户看到(加载)了这个图片,就会默认对<img>标签的src属性执行一次GET请求的操作,就会中招CSRF,攻击十分隐蔽。
修补措施:
严格校验referer信息或者加token验证。
三、最后是XSS漏洞。
漏洞标题:修改个人资料存在储存XSS漏洞
缺陷URL:http://www.zhongchou.cn/settings
缺陷的post请求抓包代码如下:
由于参数weibo_url对XSS特殊字符过滤的不严密,导致可以插入特殊字符进而进行相关构造,最终成功XSS。
然后这个位置的输出点还有很多,比如直接用默认登录页面登陆后的这个地址,也会触发XSS。
还有下面的那4个大功能的页面都会触发XSS。
修补措施:
由于本站cookie是没有http-only的,因而XSS并可以直接获取本站的用户登陆信息,即对网站自身的账户产生的影响较大。
修补方法很简单:过滤掉造成XSS漏洞的特殊字符即可。
综合后进行危害的描述:
1 重置密码:这个6位纯数字,有高速服务器的话,爆破起来是很快的,但是乌云会认为一般人没有这个条件,利用成本高,所以这个就看厂商怎么理解了,个人认为这些设备对于职业黑客来说,还是比较小case的。成功爆破,就可以重置用户密码,达到完全控制帐号的节奏。
2 CSRF:单看这个漏洞,貌似没啥影响,大不了就是用户个人资料被修改呗,又没啥大问题。但看这个漏洞的话,的确是这样的,那么继续看下面。
3 XSS:但看这个XSS,也没啥危害,明显是一个自己XSS自己的漏洞,如果单独提交,肯定是会被忽略的。
好了,这里我要说的是,虽然2中的CSRF和3中的XSS单独来利用的确没啥危害,但是如果将其结合在一起呢?
结果就是危害很大!可以给用户埋一个永久的XSS后门,而且由于网站全站请求没有token,所以还可以用来进行蠕虫攻击!
解释下为什么会这么说:
这里首先黑客可以设计好XSS攻击的代码,然后将其构造在外部POC的form表单中,然后将代码传到自己的服务器上。接着再将自己服务器的地址发给目标用户,或者以超链接的形式发到其他地方,或者以<img src="黑客用户攻击的URL">的形式埋在其他位置。
这样,用户不管以何种方式请求了此连接(上面也说到了,看到那个图片也会等于执行了一次GET请求),都等于中招了CSRF攻击,然后便会执行提交黑客服务器的那个form表单,然后就会修改了自己的个人资料,给自己那个位置种下一个XSS后门,然后这个后门还会存在与上面好多位置,每次登录也会触发后门。这里肯定是可以通过构造闭合将这里修饰的和正常网页一模一样的,我没这么做是为了让问题描述起来更直观而已。
最后不要忘了2个重要的问题,这个XSS后门还可以发起蠕虫、而且网站没httponly,利用XSS盗取cookie后,就可以直接登录用户账户了!