来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] 前两天一直想写一篇关于投票系统IP绕过和验证码破解的文章,因为时间的原因最后还是拖到了现在。近来一年,做过好几个投票系统的刷票了,也攒了一点经验,分享如下:案例1:h...
前两天一直想写一篇关于投票系统IP绕过和验证码破解的文章,因为时间的原因最后还是拖到了现在。近来一年,做过好几个投票系统的刷票了,也攒了一点经验,分享如下:
案例1:http://wzgg.zjol.com.cn/05wzgg/11zt/kfc/index_zdl.shtml 2011年4月
当时帮朋友刷这个的时候没有写多线程,当时竞争对手似乎也开了不合法的刷票工具,但是速度好像不及我的块,每秒才3票,我们多台电脑开了多个程序最后每秒有23票左右的刷票速度了。据说在最后关头,票数快到1万了,还有其他组最低只有700票的样子,看着数字有点奇怪,那帮家伙就活生生帮他们刷到了7000票。禽兽啊…… 案例2:地址点此可见 2011年5月 这个案例2太有吐槽的价值了。没错,这是本校社团联盟的投票系统截图, 在确认这个站没有我这种二脚猫能钻进去的SQL注入漏洞之后,
对于第二个问题,老毛子曾经说过:
在任何花哨的前端都是纸老虎,决不能退缩!来,我们来抓包!最方便的工具当然是firefox下的firebug啦! 通过查看网页源代码可以发现每按一下验证码处的数字(i)键都会调用javascript:keyinput(i); function keyinput(i) { var input_key = new Array(); input_key[0] = "B2YHNwBgCDhVZwAwDDVUb1BvBjQFZgVkWWBRNwI2UzFVYVU1AGYBYlM3A2VRNlVjD28FOwI9D2xdZFUyV2IHYgd5B2E%3D"; input_key[1] = "UDEKaApqBDFXY1dlUWMCNQFmATYCZ1M%2BCDUGZlQ9BTMCMFVnCmoJPlBlVmYAOAFvU2MGZ1VlBmdcawBnAWkAZlAuCm0%3D"; input_key[2] = "AWAKZFRmBDVZbgQ2U2pSOVdoBWZTYAA3DTBWYwJlVmEBNQo6UWIAYlhvAWcDOgcxVzJVMQUzBmYJPgJnVzQAZwF%2FCm4%3D"; input_key[3] = "VTJSZwtrBDIAYwA4BTNTOVNhA2ZbaQcwXDYEZVFmUzJXZ1E%2FVmYGYldvCmwCZwI0VzdWYwVjBGcIZQAyBTJVYlUrUjc%3D"; input_key[4] = "XD8KZFdjVGZSNAs9DDoEMg5pBjMCY1I1WjADZwFhAmIHPAtsV2wDZgRlBTMDNQdqDz4CMFppUzUAPg5vAWJTNFwiCmg%3D"; input_key[5] = "XDtXNQJlBTAFNgBiV2EHblA0VjNRNVFgCTQAYFE0BDVTNQprCj4BYlRmBmRUZQ82AjMDMFE3DmkPMVM4Cz5XZlwiVzQ%3D"; input_key[6] = "VWYAYFdjUj8ENFNqV2cAbAQ3BGJSbQ5iAT4DNgY2VjRVYVFhCmtUNQdiCjwHNg45UGFSMFs%2BDmsNYAZnAzZRNlUrAGA%3D"; input_key[7] = "BjxQYAMxCGhYPQo%2BAzdTOgNmVDZVNwI3AD5TNgZgVzJXYAYxUGBVN1QwB2IMaVc8BjRVMFAyADVbZgdhUDUFMgZ4UDE%3D"; input_key[8] = "BmcKZVA1BmJTNVBoBz8PNQVlAmdRb1E9C2UAMQRsUmcBNlI9BmNVNAQ1UTcEYQU6BjIAPlRkBTRaZ1MzC2wCYgZ4CmQ%3D"; input_key[9] = "XWsKaVQ0B2cAOAtoBmQCaFdjAGIANVFhCjIANQU2AGBWMVZhU2FUYQJkVzQNOVNtBWBUZAZiAWMJZw45UDNUZl0jCmU%3D"; objid = document.getElementById("keyinputid"); objid2 = document.getElementById("hiddenid"); if (i == -1) { objid.value = ""; objid2.value = ""; } else { objid.value += i; objid2.value = objid2.value + input_key[i] + '|'; } } 综合其他一些信息得出结论,这个验证码就是对数字进行了简单加密,比如0123加密成 var code = input_key[0]+'|' + input_key[1] + '|' + input_key[2] + '|' + input_key[3] + '|';
关于IP绕过的问题,谁当年没二逼过啊!那个时候我们用的是按键精灵模拟闪讯联网断网换IP实现的, 关于常规验证码破解与识别,如下是我找的网络上一些比较好的文章和资源: http://www.crazycoder.cn/YanZhengMa/Index.htmlhttp://www.2cto.com/kf/201203/123439.html http://www.2cto.com/kf/201203/123442.html http://www.2cto.com/kf/201203/123441.html http://www.2cto.com/kf/201203/123440.html http://code.google.com/p/tesseract-ocr/ http://www.pixel-technology.com/freeware/tessnet2/ 本案例中使用了tessnet2 OCR库进行验证码识别,但是发现识别率并不太好,于是进行了一些处理: 上图是一个本案例中遇到的验证码,可以看到影响识别的主要因素是
外部有灰框:直接把灰框置白,下面是C#实现代码
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com