手机和网络早已密不可分,通过网络,可以直接发送信息到手机上,只是现在已经没有
免费发送短信的网站,如果想通过网站发送短信到手机上,必须先注册用户,确认后才可以
发送信息,只是那样以来,呵呵,发一条信息就是一毛钱,呵呵,我可没那么多钱。呵呵
是不是很纳闷啊,呵呵
好了,我来仔细说说。
首先分析网上可以发送手机短信的网站结构。特别是他们如何确认用户已经注册成功呢。
一般说来有如下步骤:
1、用户认可网站提出的服务协议
2、用户进入注册页面,填写自己的手机号码
3、由服务器接受用户提交的手机号码,并发送确认密码到用户填写的手机上
4、用户以手机号码以及手机获得的密码登录到网站上使用网站提供的收费服务
以新浪为例:
登录新浪短信的注册页面,在手机号码里填写号码,然后点击注册
这时候,服务器收到用户发送的请求,就将用户注册密码以短信的方式发送给该手机号码
到这里为止,明眼人应该可以看出点东西了。
呵呵!
不错,如果我们可以顺利的伪造一段信息并发送给服务器,通过服务器发送注册密码
给相应的手机号码,如果我们发送2次,手机应该收到2次信息,如果我们发送10次,手机
自然应该收到10次,如果我们发送100次、、、
呵呵
验证想法
搬出嗅探器,当然,我比较喜欢IRIS,下面是截获的数据包,Decode后的显示
单击图片放大
其中有两行我们需要注意:
一个是
POST /cgi-bin/sms/register.cgi HTTP/1.1
一个是
mobile=13801590786&lang=1&%D7%A2%B2%E1.x=29&%D7%A2%B2%E1.y=6HTTP/1.1
200 OK
(呵呵,当然,这个不是我的手机)
分析一下:
/cgi-bin/sms/register.cgi是用来注册的程序
mobile=手机号码
lang=1表示手机是中文机,lang=0表示手机是英文机(呵呵,看看html代码里面就有)
%D7%A2%B2%E1是unicode编码,意思是“注册”
尝试实现:
第一次直接用GET尝试,不用POST,只填写mobile参数
回车后返回一堆乱七八糟的东东
呵呵,我就不贴了,基本意思是不成功
再尝试!
连到服务器上
绦肎ET,不用POST,但是在mobile参数后面添加lang语言参数
呵呵,成功了吧
呵呵,看看title里面的就知道已经成功了
呵呵
好了,下面就是用程序实现了
呵呵,我不是程序员,所以我不贴代码出来了
不过目前就写出的攻击程序来看,呵呵,基本每家网站的服务都是可以利用的
而且,效果还算不错。
需要注意的是,当多次提交相同号码的时候,速度不能快,另外,因为这种攻击方法是有风险的
呵呵,因为服务器会有纪录嘛,所以,在写的时候,注意添加一个proxy就可以了。
好了,就先交流这么多