那些年我们“投(shua)”过的票

最近朋友圈中时不时有人要帮忙投个票啥的,又想起N年前,那时候刚开始学习渗透测试,并且自学java的时候,为了学习代码的同时能够更好的用于实战,想找一些事来做一做。

当时发现一个文学网站有一个为期3个月左右的投票活动,网站活动刚开始就看着最前面的一些作品一下子就获取了1万多票(肯定是专业团队刷的),于是已一个当时屌丝的心态来看,似乎有事做了。哪知道最终我和这个文学网站的投票系统杠上了。

由于是自学java期间,所以没有用一些打包好的jar包,如httpclient等,代码基本都是原生的。

刚开始的时候,测试发现网站的投票功能没有任何限制,于是写了几行代码,直接发送post请求:

看到很多作品的投票数往上涨,心里很是开心。

不过几天后,发现程序似乎失效了,刷了半天,票数似乎没有任何变化,难道有什么变动?

抓包测试了一下,发现似乎请求还是原来的请求,不过似乎只能投票一次了?难道是IP的限制,果断用一个代理IP试了一下,发现又成功了。果然是IP的限制。

一个作品一天只能用一个ip投票一次

于是想着用代理IP,可是平时我也就几个IP翻FQ而已,这几个代理改变不了大局。总不能为了搞个这个,还花钱去买一堆IP吧,不过网上还是有许多的http和sockets的免费代理,有些5分钟更新一次,有些10分钟更新一次,不过这类IP的失效速度挺快的,用于投票还是挺靠谱的。

网上有挺多的代理工具可以自动收集、整理并验证IP是否有效的,只需要输入网页地址就好了,我用的是花刺代理:

最常用的就是添加资源》下载代理资源》验证全部》导出选定,直接导出txt的格式。

然后写代码读取有用的代理IP,默认用http,报错后切换socket代理:

验证码的对抗

不过又过了一段时间,又发现不行了,原来加了验证码,不过验证码很简单,只是纯数字,而且没有啥变形之类的,也就没有弄ocr等等工具,以提高自己为主,于是网上找了一个简单的图形验证码识别代码,了解了解原理,然后改了改做处理:

图形验证码的识别在于字模库,不过我想的也挺简单,他的验证码不复杂,0-9,共10个数字,1个验证码4个数字,准备40张图片,每个数字四张图片对应4个位置,同时网上找了分割代码和二值化的代码来辅助图片处理:

存储图片库设定4个目录,对应4个位置:

一个目录10张图片:

如何比较呢?网上找的一个,应该是一个像素一个像素对比:

当然这种方法是很古老的了,不过可以作为学习者参考使用。

验证码的识别搞定了,接下来就是需要与cookie绑定了,保证验证码图片的获取和投票的请求的cookie一致:

只需要在发送请求中加入

connection.setRequestProperty("Cookie",cookie);

就好了。

几天后,我发现似乎代码又失效了,不过排除原因后,我差点乐了,他们把验证码内容改了,改成汉字的了,而且做了干扰和变形,这样建模的难度就高了,不过我开心的原因就是他们这次的验证码没有满足唯一性和失效性,这也是验证码经常出现问题的地方,也就是使用一次后,不会自动失效,也就导致原来的验证码一直可以使用,不用再去浪费时间刷验证码了。

快乐的时光总是短暂,几天后,似乎他们又发现了什么,验证码又换回去了,不在有验证码的漏洞,而且复杂度提高了,加入了字母在里面,在启用之前的验证码破解方法,已经不行了,而且建模太费时间了,于是就暂时放弃了。

不过我去他们的评论区去发帖,说投个票搞个验证码,太费事了,而且对于专业的刷票团队来说,似乎也没啥鸟用嘛!

登录注册投票

似乎发帖投诉有点作用了,一段时间后,验证码取消了,不过又换成了一个新的方式,投票者需要登录以及注册,注册后需要进行邮箱验证。

不过发现,注册时的邮箱,可以重复使用,主要用户名不重复就好了,这样就不需要搞那么多邮箱了,不过注册的项目挺多的,文学网站,哎!

为了提高真实性,我从百家姓里,把姓氏给提出来,然后随机几个汉字,在长度随机一下,就开始注册了,同时用户名也随机一样,密码与用户名一样,然后就开始批量注册了:

同时把注册的用户名存在一个文件里:之后注册了一些用户之后,就可以了,反正可以重复使用。

再就是自动登录,并获取cookie后进行绑定,不过他们使用登录后投票的功能之后,就没有一个IP只能投一次票的限制了,所以也就暂时不用代理IP了,不过一段时间后,他们又启用了该限制,不过那个时候也差不多快结束了,而且启用代理后,也就多了几行代码而已:

刷代理买火车票

另外值得一提的是,那一年也是网上可以刚开始抢火车票的一年,当时各种插件共享,抢票点击木有问题,问题是,到点了票不出来,几个同事朋友说,这肯定是缓存,哪哪几个城市人少,说不定那快一些,于是又想到了代理IP,但是手动切换浏览器代理IP太费劲了,咋能自动切换呢?

于是当时想到了fiddler,记得一次分享的时候,部门的大神分享了fiddler可以自定义一些功能,于是想,能不能把浏览器指向fiddler,在fiddler中自动代理,而且刷出来了之后,直接关了fiddler就好了,就可以直接买票了,快速方便。

于是找了fiddler的脚本编写的文章,果然有戏,在fiddler的script中,有几个函数:

其中OnBeforeRequest(oSession: Session)的作用就是在请求发送前的一些设置,而代理ip的配置可以如下:

*本文原创作者:ExpLife,本文属FreeBuf原创奖励计划,未经许可禁止转载    oSession["x-overrideGateway"] = "127.0.0.1:8080";

所以就可以设定一个IP数组,然后加一个随机值,自动走其中一个代理IP就好了。

时间: 2024-10-10 14:05:55

那些年我们“投(shua)”过的票的相关文章

2014年博客之星-小白的拉票帖,谢谢支持!

各位亲爱的博友们,打开这篇博客说明你已经进入小白的拉票环节中,我看很多博主给自己拉票都一笔带过留下而过链接就走了,说个实在话CSDN里有很多牛人高手,写的博客也非常不错,小白有时候也会去观摩学习,但是呢,小白的博客跟大部分人有不一样的地方,给你们一个机会说说有什么不一样吧,如果长期关注小白的博客的朋友们可能会发现小白的大部分博文都是功能性的,并没有写些比较深入的博文,这里说一句,不是小白写不了,只是不太愿意写,目前小白的博客面向人群是开发入门和初中级开发者,目前一般以一些实用性.实战型的博文来跟

BoW图像检索Python实战

下文来自我的博客:BoW图像检索Python实战 前几天把HABI哈希图像检索工具包更新到V2.0版本后,小白菜又重新回头来用Python搞BoW词袋模型,一方面主要是练练Python,另一方面也是为了CBIR群开讲的关于图像检索群活动第二期而准备的一些素材.关于BoW,网上堆资料讲得挺好挺全的了,小白菜自己在曾留下过一篇讲解BoW词袋构建过程的博文Bag of Words模型,所以这里主要讲讲BoW的实战.不过在实战前,小白菜还想在结合自己这两年多BoW的思考和沉淀重新以更直白的方式对BoW做

计数排序Counting sort

注意与基数排序区分,这是两个不同的排序 计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长 大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶 看下具体的过程,一共需要三个数组,分别是待排数组,票箱数组,和桶数组 var unsorted = new int[] { 6, 2, 4, 1, 5, 9 };  //待排数组 var ballot = new int[unsorted.Length];          //票箱数组 var b

【BZOJ2199】 [Usaco2011 Jan]奶牛议会

Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 (1 <= M <= 4000) 会给N个议案投票(1 <= N <= 1,000) .每只 奶牛会对恰好两个议案 B_i and C_i (1 <= B_i <= N; 1 <= C_i <= N)投 出“是”或“否”(输入文件中的'Y'和'N').他们的投票结果分别

2014.8.22数组

数组:内存 连续 同一类数据的一块区域 分类:一维数组    二维数组(两个下标)    三维数组 一维数组: 1.定义 int[] a=new int[5];//a[0]元素,0下标,长度为5,最大下标是4 2.赋值 a[0] = 12; 3.取值 int b = a[0]; 4.运算 a.Length 数组a的长度 eg: 1 //球场上有10个球员,裁判给球员打分(0-9),赋值后,求总分.平均分 2 //把最高分和最低分求出来 3 try 4 { 5 Console.WriteLine(

万万没想到用理工科思维理解世界-摘录

万万没想到用理工科思维理解世界-万维钢(同人于野)著 第一章 怎样杀死海星 传统组织就如同蜘蛛,它的智力集中在大脑,只要你把蜘蛛的头去掉,蜘蛛就会死亡.而去中心化组织就如同海星,海星根本就没有头.它的智能分布在身体各处,一旦你打掉它身体的一部分,那个部分甚至可能自己再长成另一个海星. 不过去中心化组织有个关键的弱点:你很难通过这样的组织赚大钱.分权的产业利润低,只有集权才能获得高利润. 怎样杀死海星?<海星与蜘蛛>给了三个策略. 第一个策略是改变环境.既然你们是靠一种意识形态联系在一起,我就让

理解zookeeper选举机制

*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD

手机重复投票 利用移动网改变IP

最近帮朋友投票,无意发现这网站是根据IP来记录是否重复投票的,就找了几个代理网站重复投了几次票(因为代理会改变IP),感觉代理网速代理太慢. 无意间想起里手机送了CMCC-WEB的流量,就尝试了一下,结果发现每次连CMCC-WEB时,被分配的IP都不相同,正好用来帮朋友投票,关于CMCC的wifi还有几个如: CMCC-EDU 料想也是如此......电脑试了一下,却没有成功,看来ip被固定了-_-|| 无聊的发现,仅供参考.......

google Round D APAC Test 2017 题解

首先说明一下:我只是用暴力过了4道题的小数据,就是简单的枚举,大数据都不会做!下面的题解,是我从网上搜到的解答以及查看排行榜上大神的答案得出来的. 首先贴一下主要的题解来源:http://codeforces.com/blog/entry/47796,基本上解题思路都是从这里看到的,你可以直接查看这个链接,或者看下面的题解. 还有排行榜大神们的答案,https://code.google.com/codejam/contest/5264486/scoreboard?c=5264486#vf=1,