前言

看到上一篇别人写的投(shua)过的票,感觉狗熊所见略同。

上篇的博主好像就死磕一个网站,使出了浑身解数与其进行对抗,最终胜利。这里我写一篇续集,来帮大家梳理一下几乎所有的刷票类型。(刷票,刷粉,刷赞等异曲同工)

刷票难度从简到难,循序渐进。

一,无任何限制,简单到爆炸

毫无悬念,最简单的一种刷票,是个人都会

直接点击投票按钮即可投票,无任何限制,小白就鼠标不停点击投票即可,相关从业人员可以程序实现。

url='http://xxxxxxxx' while 1:
urllib2.urlopen(url)//死循环发起请求即可 

二,客户端限制,可欺骗小白

我们知道,一切来自客户端的数据都是不可信的

这种情况比较典型的是投票过后,按钮变灰,不可点击继续投票

1.jpg

相关从业人员肯定知道

1.修改或删除disabled属性

2.既然是客户端限制,还是直接往服务端发包就行了

三,伪客户端限制,小白也会做

有时候投完票,会告诉你投票成功,再次投票会告诉你已投票。

2.jpg

排除上面第二种情况客户端的限制,暂定此处是服务端进行验证

这种情况我发现有些非安全从业人员,他不懂其中的原理,但是他会发现

1.换个浏览器即可重新投票

2.清除下浏览器缓存即可重新投票

他们不懂,但是我们要搞清楚其原理才行

通过换个浏览器进行的刷票,极有可能是验证了User-Agent,通过变换UA即可。之前是遇到过,但是一时找不到案例了,从前wy那边找了一个http://cb.drops.wiki/bugs/wooyun-2011-02376.html不过这种验证UA的策略,之前在某webshell那里遇到过某webshell,正常访问就返回一个404的友好页面,假装自己不存在实际上则UA正确的话会呈现原本的样子清除浏览器缓存进行的刷票,极有可能是验证了cookie内容(其实这个应该算客户端验证的)

2.jpg

可以看到cookie中有个字段vote,会进行验证。

四,伪IP限制,知道的人肯定会

顾名思义,这并不是真的以IP来限制投票次数,或者说没有达到限制IP的效果

程序获取客户端IP有几种方式

HTTP_CLIENT_IP

HTTP_X_FORWARDED_FOR

REMOTE_ADDR

前两种方式均可以通过http header来显式的伪造

所以我们通过伪造不同的客户端IP即可绕过存在此问题的某些站点

程序实现就是在header里自定义即可


headers = {

"host":"xxxxx",

"User-Agent":"xxxxx",

"X-Forwarded-For":"111.222.333.444"

......

}

五,真IP限制,不知道的人可能也会

如第四点所说,通过REMOTE_ADDR获取的IP地址,是可信的,是不可显式的伪造的,那就是换ip地址嘛

如上篇所说,那就找一下网上的代理即可。

这里给出一个小Tips:移动网络每次飞行模式后获取的IP不一定一致,可以多投一些票

六,图片验证码,然并卵

然并卵不是说图片验证码没有用,只能说攻防是相对的,没有绝对的安全。

1.简单的验证码,OCR识别(技术不多说,见上篇吧)

2.复杂的验证码,可能出现验证码失效的问题,一个验证码可以多次使用

3.类似滑动解锁,12306的验证码等,网上也有大把的现成的针对人机识别的技术,这里不再多说

七,账号登录,就GG了?

需要登录投票,也并不是就不行了,还要看程序是如何实现的

我们假设两种情况

1.需要账号登录进行投票,但是没有限制好策略,导致可通过以上6点进行投票

2.假设程序写的很好,已经很好的限制了一个账号只能投一票

我们再进一步说下第二种情况吧

这种情况的根本解决方案就是:搞到很多账号进行投票

(1)假设它有漏洞,可批量注册账号

什么邮箱,手机号等,像上篇那样邮箱可以重复利用,又或者手机验证码可控等,总之就是有漏洞批量搞到账号

(2)假设它无漏洞,类似微信~

评论中看到很多表哥问到微信的如何刷票,我只能说,利用我们自己有限的手段,是做不了的。任何通过关注微信或者微信授权登录后进行的投票,均存在微信id的唯一性验证,而凭借我们自己,哪里去搞这么多微信账号哦~

或者说我们费劲搞了这么多账号仅仅为了投票?那也太没必要了。

当然,微信刷票也成为一个产业,有些机构拥有大量微信账号,可以付费搞这个事情

八,最后说下羊毛党

相比下微信刷票的难度,我们可以跟更高层次的羊毛党做下比较

他们拥有大量的手机号

他们拥有大量的银行卡四要素数据

他们去各种地方薅羊毛

他们应该看不上单纯刷票这种无利益的东西…

最后一句话,个人见解。羊毛党是挡不住的,我们的核心思想是让羊毛党在我们平台多停留会~

*本文原创作者:西毒若相惜