记录一下新浪投票平台刷票

亲戚给了个新浪的投票链接让我帮忙刷票
地址是 http://h5.locate.sina.com.cn/h5/year/activity/
这平台不需要微信登录，自己浏览器投了个票看下请求

Copy
callback=jQuery1830560859883008xxx_171833334xxx&uid=5&uu=444192xxxx&_=171833338xxxx

翻一下 js 看看有没有加密

显然是没有的，但是这里面没看到投票逻辑代码
翻下页面元素

没绷住，逻辑代码直接写 html 里了
直接找到重点

Copy
if(!localStorage.getItem('uu')){
localStorage.setItem('uu', Math.ceil(Math.random()*10000000000));
}

Copy
$(".n").on("click",function (){
var index=$(this).parents("li").index();
var uu=localStorage.getItem('uu');
console.log(index);
$.ajax({
url: URL+'u',
type:'get',
data: {uid:index+1,uu:uu},
dataType: "jsonp",
jsonp: "callback",
success: function(res) {
if(res.info){
//alert(res.info);
$(".tips").text(res.info).fadeIn();
setTimeout(function (){
$(".tips").fadeOut();
},2000);
newslist(index); //数据刷新
return 0;
}

}
});

这两段代码基本上就是整个投票逻辑了
主要就是传三个参数 callback uid uu
callback 的话没什么好说的，就一个常规的 jQuery 请求后端接口，参数用 jQuery 后面随便接一段数字，然后下划线后面跟时间戳就好
uid 就是投票的项目
uu 是投票的校验，但是这玩意代码我上面已经写出来了（你都明文没加密了还要校验干嘛），应该是防重放攻击的
然后再带个请求头模拟正常用户
叫 ChatGPT 来写个脚本

Copy
#!/bin/bash
# blog.baka.plus 转载请注明来源
# 定义目标URL
BASE_URL="http://admin.h5sina.com/activity/index/u"

# 生成随机的 uu 值，若已存在则使用存储值
if [ -z "$LOCAL_UU" ]; then
LOCAL_UU=$(shuf -i 1-10000000000 -n 1)
fi

# 定义其他必要的参数
UID11=5 #不用uid防止和系统变量冲突
TIMESTAMP=$(date +%s%N | cut -b1-13)
CALLBACK="jQuery183044178990760114514_$TIMESTAMP"

# 构建完整URL
URL="$BASE_URL?callback=$CALLBACK&uid=$UID11&uu=$LOCAL_UU&_=$TIMESTAMP" #最后面的参数可以不要，防止缓存用的，但为了和正常请求的参数一致还是带上了

# 执行curl请求
curl "$URL" \
-H 'Accept: */*' \
-H 'Accept-Language: zh-CN,zh;q=0.9' \
-H 'Connection: keep-alive' \
-H 'Referer: http://h5.xxx.sina.com.cn/' \
-H 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36'

循环运行一下

Copy
while true
do
bash script.sh
sleep 0.1
done

因为单 ip 只能投票三次，所以每投三张票得更换代理，这里就不再赘述

此文由 Mix Space 同步更新至 xLog
原始链接为 https://blog.baka.plus/posts/tech/sina-vote-platform-vote-manipulation