逻辑漏洞背后隐藏的刷票总结
字数 1743 2025-08-24 07:48:22

刷票漏洞利用技术总结

前言

刷票行为通常利用逻辑漏洞实现,通过伪造投票请求、绕过验证等手段增加投票数量以获取名次奖励。本文总结了多种刷票技术思路,这些思路不仅限于刷票场景,也可应用于其他安全测试场景。

一、无任何验证措施

漏洞特征:程序开发问题,单一投票功能,用户可直接点击投票且无任何限制。

利用方法

import requests
url='http://www.domain.com/comment.php?aid=123&who=1&t=1385710179528'
while 1:
    requests.get(url)

二、客户端验证

核心原则:一切来自客户端的数据都不可信。

  1. 弹框提示无阻断:仅弹框提示,不阻断代码执行,刷新页面可继续投票
  2. 浏览器缓存验证:更换浏览器或清理缓存可重新投票
  3. 前端按钮限制:投票后按钮变灰,可删除前端控制代码或直接向服务端发包

三、User-Agent验证

绕过方法:修改User-Agent头模拟不同设备/浏览器。

常用User-Agent示例

  • iPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38...
  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...
  • 百度爬虫: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html

四、Cookie验证

绕过方法

  1. 修改Cookie值,即使随机修改两个字符也可能绕过限制
  2. 使用不同用户的Cookie

五、IP验证

绕过方法

  1. 修改X-Forwarded-ForClient-IP
  2. 使用IP代理池

代理池示例

import requests
from random import choice

proxy_list = ['http://ip1:port1', 'http://ip2:port2', 'http://ip3:port3']
proxy = choice(proxy_list)

headers = {'User-Agent': 'Mozilla/5.0...'}
response = requests.get('http://www.example.com', headers=headers, proxies={'http': proxy})

其他方法

  • 重启路由器更换IP
  • 手机开启飞行模式更换IP

六、投票量与阅读量异常检测

检测方法:当投票量明显大于阅读量时,系统可能判定为刷票行为。

应对策略:控制投票数量在合理阅读量范围内。

七、组合拳1:CSRF刷票

利用方法

  1. 利用Burp的Engagement tools生成CSRF PoC
  2. 诱导已登录用户访问恶意页面自动发送投票请求

八、组合拳2:XSS打Cookie刷票

利用方法

  1. 存储型XSS:直接自动化刷票
  2. 反射型XSS:通过缩短网址诱导用户点击收集Cookie
  3. 结合CSRF实现自动化刷票

九、观察数据包请求

关键点

  • 检查Get/Post参数中的验证值
  • 检查Cookie中的判断值
  • 修改系统提供的判断值可能实现刷票

十、并发线程(条件竞争)

利用方法

  1. 使用Fiddler批量发包
  2. 使服务器处理速度跟不上请求速度
  3. 在验证机制生效前完成大量投票

十一、验证码绕过技术

  1. 验证码重复使用:使用后不会销毁,可重复使用
  2. 字符集可控:可自行选择验证码(如ThinkCMF 1.X-2.X漏洞)
  3. 验证码暴露:验证码存放在可预测位置
  4. 万能验证码:如8888、0000等开发测试用密码
  5. 尺寸可控:修改验证码尺寸使其易于识别
  6. 简单验证码:可机器识别
  7. 会话绕过:清空缓存或使用隐私窗口绕过验证码

十二、手机号验证码绕过

利用方法

  1. 使用在线接码平台:
    • https://jiemahao.com/ (免费)
    • https://bestsms.xyz/ (免费)
    • https://sms-activate.org/cn (付费)

实战案例

案例1:某APP刷票

  1. 问题:APP提示需要使用特定客户端但实际已使用
  2. 分析:User-Agent验证问题
  3. 解决:修改User-Agent为手机UA
  4. 发现token验证:修改token值可绕过限制

案例2:高校排行刷票

  1. 分析:无Cookie和IP验证
  2. 发现vid参数控制投票
  3. 规律:vid值增加1位可继续投票
  4. 实现:批量修改vid值刷票

防御建议

  1. 加强验证机制:随机token+服务端验证
  2. 表单提交增加随机校验码
  3. 多因素验证组合
  4. 合理设置投票限制策略
  5. 监控异常投票行为(如投票量远大于阅读量)

总结

本文总结了多种刷票漏洞利用技术,核心在于识别和绕过系统的验证机制。这些技术思路不仅适用于刷票场景,也可应用于其他安全测试领域。关键在于培养安全思维,看到功能点就能考虑可能存在的漏洞和触发条件。

刷票漏洞利用技术总结 前言 刷票行为通常利用逻辑漏洞实现,通过伪造投票请求、绕过验证等手段增加投票数量以获取名次奖励。本文总结了多种刷票技术思路,这些思路不仅限于刷票场景,也可应用于其他安全测试场景。 一、无任何验证措施 漏洞特征 :程序开发问题,单一投票功能,用户可直接点击投票且无任何限制。 利用方法 : 二、客户端验证 核心原则 :一切来自客户端的数据都不可信。 弹框提示无阻断 :仅弹框提示,不阻断代码执行,刷新页面可继续投票 浏览器缓存验证 :更换浏览器或清理缓存可重新投票 前端按钮限制 :投票后按钮变灰,可删除前端控制代码或直接向服务端发包 三、User-Agent验证 绕过方法 :修改User-Agent头模拟不同设备/浏览器。 常用User-Agent示例 : iPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38... Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36... 百度爬虫: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html 四、Cookie验证 绕过方法 : 修改Cookie值,即使随机修改两个字符也可能绕过限制 使用不同用户的Cookie 五、IP验证 绕过方法 : 修改 X-Forwarded-For 或 Client-IP 头 使用IP代理池 代理池示例 : 其他方法 : 重启路由器更换IP 手机开启飞行模式更换IP 六、投票量与阅读量异常检测 检测方法 :当投票量明显大于阅读量时,系统可能判定为刷票行为。 应对策略 :控制投票数量在合理阅读量范围内。 七、组合拳1:CSRF刷票 利用方法 : 利用Burp的Engagement tools生成CSRF PoC 诱导已登录用户访问恶意页面自动发送投票请求 八、组合拳2:XSS打Cookie刷票 利用方法 : 存储型XSS:直接自动化刷票 反射型XSS:通过缩短网址诱导用户点击收集Cookie 结合CSRF实现自动化刷票 九、观察数据包请求 关键点 : 检查Get/Post参数中的验证值 检查Cookie中的判断值 修改系统提供的判断值可能实现刷票 十、并发线程(条件竞争) 利用方法 : 使用Fiddler批量发包 使服务器处理速度跟不上请求速度 在验证机制生效前完成大量投票 十一、验证码绕过技术 验证码重复使用 :使用后不会销毁,可重复使用 字符集可控 :可自行选择验证码(如ThinkCMF 1.X-2.X漏洞) 验证码暴露 :验证码存放在可预测位置 万能验证码 :如8888、0000等开发测试用密码 尺寸可控 :修改验证码尺寸使其易于识别 简单验证码 :可机器识别 会话绕过 :清空缓存或使用隐私窗口绕过验证码 十二、手机号验证码绕过 利用方法 : 使用在线接码平台: https://jiemahao.com/ (免费) https://bestsms.xyz/ (免费) https://sms-activate.org/cn (付费) 实战案例 案例1:某APP刷票 问题:APP提示需要使用特定客户端但实际已使用 分析:User-Agent验证问题 解决:修改User-Agent为手机UA 发现token验证:修改token值可绕过限制 案例2:高校排行刷票 分析:无Cookie和IP验证 发现vid参数控制投票 规律:vid值增加1位可继续投票 实现:批量修改vid值刷票 防御建议 加强验证机制:随机token+服务端验证 表单提交增加随机校验码 多因素验证组合 合理设置投票限制策略 监控异常投票行为(如投票量远大于阅读量) 总结 本文总结了多种刷票漏洞利用技术,核心在于识别和绕过系统的验证机制。这些技术思路不仅适用于刷票场景,也可应用于其他安全测试领域。关键在于培养安全思维,看到功能点就能考虑可能存在的漏洞和触发条件。