微信投票人工投票刷票

   添加微信号:  

   80165877 

   复制红色数字添加微信

今天在班级群里面看到, 有同学在拉票. 于是随手点进去帮忙投了一票.

这个投票活动大概长这样, 打码是为了防止暴露投票活动信息.


图1


图2

当我们点击"点击投票"按钮的时候, 会弹出输入验证码的模态框, 输入验证码点击投票后显示投票成功.


图3

经历过投票的流程后, 不难发现, 整个过程中只有输入验证码的一个复杂过程. 于是就想模拟请求达到投票的效果.

于是开始了下面的分析:

1.投票没有记录是谁投的, 那么这里的已投票按钮肯定只在前端做了限制, 有过web开发经验的程序员很容易会想到cookie, 这里也正是用cookie存储投票记录限制前端. 通过清除cookie或换其他的浏览器, 发现还可以投票. 这里我用了chrome浏览器的无痕模式, 验证了这一点.


图4

2. 由1可知, 既然是用cookie限制, 那么能不能清除cookie然后再投票呢? 这里我试了一下, 发现再次投票后, 前端页面的票数会加1, 刷新之后票数会复原, 由此可推测, 除了前端限制, 服务端也会去重. 这时在页面底端看到这样的提示信息: 同一设备每天对一家只能投一次. 猜想是根据ip来去重的, 于是我换了个ip, 再投票发现票数增加了, 刷新也没有减少, 由此可推断是根据ip去重的. 理论上分析到这里已经可以实现模拟投票了.


图5

经过前面的分析, 总结出来一下几点难点:

  1. 验证码请求, 投票请求获取?
  2. 验证码如何自动填写?
  3. ip如何自动切换?

对于第一点, 我们可以在浏览器的控制台中抓取url并分析参数, 这一步较为简单, 在此略过.

对于第二点, 有两种方案:

  • 方案一: 抓取图片, 通过神经网络识别验证码内容.
  • 方案二: 购买验证码识别的服务调用.

显然方案一成本太高, 这里采用了方案二.

对于第三点, 可以通过代理实现, 购买代理服务.

经过以上分析, 只需按部就班的写模拟程序实现:

最开始我以为知识简单的在前端加了限制, 没有过滤ip, 所以就直接识别验证码, 然后发请求投票. 主要代码有以下部分:

点赞(0) 打赏
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部