技术讨论 | 一次尚未完成的薅羊毛行动
字数 1424 2025-08-18 11:37:02

基于代理与爆破技术的羊毛党实战教学文档

1. 背景与目标

本教学文档基于一次针对XX眼镜公司"免费领取日抛5日装隐形眼镜"活动的安全测试案例。目标是通过技术手段分析并利用活动中的安全漏洞,实现多账号领取赠品。

2. 技术分析

2.1 验证码机制分析

  • 验证码长度:4位纯数字
  • 验证码请求方式:POST /tws/we_chat/active/get_auth_code
  • 请求参数:phoneNumber=13812345678
  • 验证码验证接口:POST /tws/we_chat/active/check_auth_code
  • 验证参数:name=你好&phoneNumber=13812345678&verificationCode=1234

2.2 门店选择机制

  • 门店ID参数:storeId=store20160003
  • 获取活动详情接口:GET /tws/we_chat/active/detail?activeId=5e6d2ccd-a9b5-41b8-a376-2c00ab0c4ee4&storeId=store20160003

3. 攻击实施步骤

3.1 验证码爆破

  1. 使用Burp Suite的Intruder模块
  2. 攻击类型:Sniper
  3. 攻击位置:verificationCode参数
  4. 载荷类型:4位数字(0000-9999)
  5. 预计爆破时间:约1分钟

3.2 门店选择绕过

  1. 通过枚举storeId参数值
  2. 查找距离最近的门店ID
  3. 修改请求中的storeId参数

3.3 实际领取技巧

  1. 提前生成多个账号的领取二维码并截图保存
  2. 门店应对策略:
    • 声称已提前扫描门店二维码预约
    • 应对店员对页面跳转的检查

4. 技术难点与解决方案

4.1 现场验证码爆破需求

问题:现场注册需要即时爆破验证码

解决方案

  1. 建立手机到云服务器的代理通道
  2. 云端自动解析请求并爆破验证码
  3. 2分钟内返回结果到手机端

4.2 代理技术实现

4.2.1 代理工具选择

使用wyproxy工具,基于mitmproxy开发:

  • 支持HTTP/HTTPS和Socks5代理
  • 可记录请求到MySQL数据库
  • 基本命令:
    python wyproxy.py -h
    python wyproxy.py -d -p 8080 -m HTTP/HTTPS
    

4.2.2 手机代理配置

  1. WiFi连接后设置代理:

    • 代理服务器IP和端口
    • 或使用PAC自动配置文件
  2. 蜂窝网络代理配置:

    • 通过VPN配置实现
    • 使用客户端软件如Wingy、Brook等

4.2.3 Shadowsocks与代理结合

问题:如何在SS服务端插入代理

尝试方案

sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner root --dport 443 -j REDIRECT --to-port 8080
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner root --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING --dst p tcp -m owner ! --uid-owner root --dport 8080 -j DNAT --to-destination 127.0.0.1:8080
sysctl -w net.ipv4.ip_forward=1

未解决问题

  1. iptables规则配置问题
  2. SS服务器与代理服务器是否为同一台的影响
  3. Burp与SS的结合使用

5. 安全建议

5.1 对活动主办方的建议

  1. 增加验证码复杂度(6位以上或字母数字混合)
  2. 限制单IP请求频率
  3. 加强门店核验机制(如动态二维码)
  4. 验证码与手机号/IP/设备绑定

5.2 对开发者的建议

  1. 避免在客户端暴露门店ID等敏感参数
  2. 实现服务端严格的输入验证
  3. 关键操作添加二次验证

6. 扩展思考

  1. 自动化羊毛党工具设计:

    • 多账号管理
    • 自动爆破验证码
    • 智能选择最近门店
    • 二维码自动生成与保存
  2. 对抗羊毛党的技术:

    • 行为分析识别机器操作
    • 设备指纹技术
    • 基于风险的验证机制

7. 法律与道德声明

本教学文档仅用于安全研究和技术学习目的。未经授权对他人系统进行测试或利用漏洞获取利益可能违反法律。请遵守当地法律法规,仅在获得明确授权的情况下进行安全测试。

基于代理与爆破技术的羊毛党实战教学文档 1. 背景与目标 本教学文档基于一次针对XX眼镜公司"免费领取日抛5日装隐形眼镜"活动的安全测试案例。目标是通过技术手段分析并利用活动中的安全漏洞,实现多账号领取赠品。 2. 技术分析 2.1 验证码机制分析 验证码长度:4位纯数字 验证码请求方式: POST /tws/we_chat/active/get_auth_code 请求参数: phoneNumber=13812345678 验证码验证接口: POST /tws/we_chat/active/check_auth_code 验证参数: name=你好&phoneNumber=13812345678&verificationCode=1234 2.2 门店选择机制 门店ID参数: storeId=store20160003 获取活动详情接口: GET /tws/we_chat/active/detail?activeId=5e6d2ccd-a9b5-41b8-a376-2c00ab0c4ee4&storeId=store20160003 3. 攻击实施步骤 3.1 验证码爆破 使用Burp Suite的Intruder模块 攻击类型:Sniper 攻击位置: verificationCode 参数 载荷类型:4位数字(0000-9999) 预计爆破时间:约1分钟 3.2 门店选择绕过 通过枚举 storeId 参数值 查找距离最近的门店ID 修改请求中的 storeId 参数 3.3 实际领取技巧 提前生成多个账号的领取二维码并截图保存 门店应对策略: 声称已提前扫描门店二维码预约 应对店员对页面跳转的检查 4. 技术难点与解决方案 4.1 现场验证码爆破需求 问题 :现场注册需要即时爆破验证码 解决方案 : 建立手机到云服务器的代理通道 云端自动解析请求并爆破验证码 2分钟内返回结果到手机端 4.2 代理技术实现 4.2.1 代理工具选择 使用 wyproxy 工具,基于mitmproxy开发: 支持HTTP/HTTPS和Socks5代理 可记录请求到MySQL数据库 基本命令: 4.2.2 手机代理配置 WiFi连接后设置代理: 代理服务器IP和端口 或使用PAC自动配置文件 蜂窝网络代理配置: 通过VPN配置实现 使用客户端软件如Wingy、Brook等 4.2.3 Shadowsocks与代理结合 问题 :如何在SS服务端插入代理 尝试方案 : 未解决问题 : iptables规则配置问题 SS服务器与代理服务器是否为同一台的影响 Burp与SS的结合使用 5. 安全建议 5.1 对活动主办方的建议 增加验证码复杂度(6位以上或字母数字混合) 限制单IP请求频率 加强门店核验机制(如动态二维码) 验证码与手机号/IP/设备绑定 5.2 对开发者的建议 避免在客户端暴露门店ID等敏感参数 实现服务端严格的输入验证 关键操作添加二次验证 6. 扩展思考 自动化羊毛党工具设计: 多账号管理 自动爆破验证码 智能选择最近门店 二维码自动生成与保存 对抗羊毛党的技术: 行为分析识别机器操作 设备指纹技术 基于风险的验证机制 7. 法律与道德声明 本教学文档仅用于安全研究和技术学习目的。未经授权对他人系统进行测试或利用漏洞获取利益可能违反法律。请遵守当地法律法规,仅在获得明确授权的情况下进行安全测试。