一、背景

XX眼镜,免费领取日抛5日装隐形眼镜活动,发现接收到的手机验证码为4位数字,看到4位验证码时就觉得有搞头。

顺便祝我伦生日快乐,等你下课~

二、技术手段

因为是跟朋友一起,所以他直接扫码注册领取了,我就是回到家扫码抓包看一下

发送验证码请求为

POST /tws/we_chat/active/get_auth_code phoneNumber=13812345678

没有什么问题,没有把验证码直接显示在response包中

那我们来看看验证过程

POST /tws/we_chat/active/check_auth_code HTTP/1.1 name=%E4%BD%A0%E5%A5%BD&phoneNumber=13812345678&verificationCode=1234

verificationCode通过burpsuite的intuder,4位数字,1分钟内就爆破成功,成功登录

这里由于第一次没注意,所以又预约到了之前的门店,不可能再去一次啊,所以想着换个别的近的门店

于是刚才的过程再抓包,找一下门店对应的字段

GET /tws/we_chat/active/detail?activeId=5e6d2ccd-a9b5-41b8-a376-2c00ab0c4ee4&storeId=store20160003 HTTP/1.1

找到了storeId,遍历一下,找到最近的门店,预约成功,由于之前和朋友一起的时候有过领取经验,所以直接预约后把二维码地方截图,等待去门店领取

三、门店领取

持以上二维码,到预约的门店,由店员扫码核销,即可领取成功。理论上,你在家里多用几个手机号预约并截图保存二维码,脸皮够厚的话可以一直换。

第一次做羊毛党,我就知道没这么简单~

1.到门店后,店员会让你现场扫他们店里的活动二维码进行预约。

(为什么要让你扫呢,因为每个门店二维码是绑定他们店的id的,这也是在第二节中我说的要修改storeId,不然会预约错门店。)这里我赶紧机智的说,上次我路过拍了你们店的活动二维码,我回家自己预约了。不管店员信不信,我反正信了。

2.扫码领取后,店员客户端被我看到了弹出核销成功几个字,我以为这就算完成了,谁知道店员问我,你成功了么?一脸懵逼,你不是都核销成功了么。

(后来研究了一下,原来是核销成功后,我们自己的二维码页面也会进行跳转到领取成功的页面。因为我是图片啊!!!!怎么跳转啊!!!我估计也是因为这个活动这个漏洞,导致很多人来伪冒领取,店员所以要多确认一下)一脸懵逼,我赶紧按下home键,然后一脸懵逼的说我已经关掉页面了,没看是否跳转。然后跟她一直巴拉巴拉我为什么要来骗你这东西,我不稀罕,不领就不领之类的,最后还是给我了东西,然后不欢而散。

四、正文

前面大家就当看个故事,涉及的burp爆破也很简单。这里总结一下类似这个场景的两个问题。

1.店员既然等着你页面刷新,保存为图片肯定不行,页面不关闭可能会话会退出导致还是需要登录。所以最好就是能在门店里及时的得到爆破的验证码。4位验证码burpsuite算慢的也就2分钟左右,完全等的起。

2.之前跟姐姐还有她孩子逛商场,里面你懂的,有各种地推人员会拿着小玩具比如风车啊,气球啊等,见到小朋友就说免费送给小朋友,小朋友肯定会拿着要啊。然后工作人员就拉着你说,填个问卷,或者注册一下什么的。有什么办法,我也很无奈啊,只能照做,毕竟东西都被小朋友拿着跑了。以前的这种很傻的,留个假的手机号就行了,现在这种机构也都学精了,也都需要手机号和验证码了。都是现场让你注册的,就算看到是4位的验证码也没办法马上爆破。

所以基于以上两个场景,如果有种把手机的请求包发到云端进行爆破,然后返回验证码给手机,2分钟以内的时间,不就可以解决这个问题了么。

五、代理

思路很简单,把手机请求的数据包发送到云服务器,服务器上脚本解析请求获取字段然后爆破,结果返回给客户端。这里结合微信订阅号或小程序功能为未来设想。未来的目标就是微信发一条指令,服务器上就开始工作了。

简单画的图,1,2,3步骤,2,3步骤后续再实现,而且难度不大,这次先试着解决步骤1.

随便找到代理公司,这里刚好看到了wyproxy,基于mitmproxy造的轮子,由之前猪猪侠搞的,可以把请求存到mysql中。

https://github.com/ring04h/wyproxy

工具不多做介绍,大家可以自己看。

$ python wyproxy.py -h
usage: wyproxy.py [-h] [-d] [-stop] [-restart] [-pid] [-p] [-m] [-us]wyproxy v 1.0 ( Proxying And Recording HTTP/HTTPs and Socks5)optional arguments:-h, --help           show this help message and exit-d, --daemon         start wyproxy with daemond-stop, --stop        stop wyproxy daemond-restart, --restart  restart wyproxy daemond-pid , --pidfile     wyproxy daemond pidfile name-p , --port          wyproxy bind port-m , --mode          wyproxy mode (HTTP/HTTPS, Socks5, Transparent)-us, --unsave        Do not save records to MySQL server

提供三种代理模式,HTTP/HTTPS, Socks5, Transparent

手机端配置代理,很简单,在连接wifi后的设置地方,直接配置代理服务器ip和端口,如果是socks代理的话,可以通过代理自动配置文件pac来实现。

搞了半天,这种代理还是要连接wifi,不管是连接到商场的wifi还是另外一部手机开热点自己去连都可以做到。

那么,纯蜂窝网络该怎么配置呢?找了半天,也只在IOS配置VPN的地方有这样的配置,未尝试,应该是可以的。

不过大家应该知道,IOS VPN一般都是通过客户端软件添加的,如上图的wingy,brook等。现在大家用shadowsocks代理比较多,那么可以通过手机连接ss服务器,然后再能中间人获取请求就行了。

网上也搜索了下

https://github.com/shadowsocks/shadowsocks/issues/747

问:想把ss服务端的对外链接通过服务端本地的http代理中转再发出去(主要想通过mitmproxy抓包),有这样的参数设置吗?还是需要改源码??

需求一样啊,也看到了有解决方法

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

创建个另外的用户跑ss,之后照着这个做,未成功。sad。

然后自己想想原理,ss客户端请求某页面,然后服务器上抓包查看。

可以看到三次握手过程,请求响应过程和后面的TCP关闭动作,我们简单画下图。

然后我们希望在ss服务端请求你应用服务器的时候插入代理。

原理搞清楚了,然后就是实现端口转发了,这里用iptables实现。

六、未完待续

到上面为止,突然就结束了,没有后续实现的过程,因为还没成功,所以发出来也让大家一起讨论指点下。

1.iptables实现端口转发,试了很多次均无法成功,不知道是iptables本身有问题还是规则配置问题。针对iptables nat表中的OUTPUT,PREROUTING等chain链,是SNAT还是DNAT,网上各种不一,不过都尝试了还是不通。请网络大牛指点。

2.是否是我ss 服务器和wyproxy代理服务器是同一台导致出现这样的问题?

3.也有搜索过ss和burpsuite连起来使用,毕竟burp还是好用和方便。

但是基本都是浏览器设置代理——->burpsuite——->burp里加一层ss代理,请求是先到burp再到ss服务器

想请求先到ss服务器,然后再到burp,跟上面一样,也一样是端口转发,试了下windows的,如下,也不行,这样有问题么。这意思不就是有请求到ip138的80端口,就转发到本地监听的8080端口,burp开启,监听8080端口不就行了么?

请各位大佬指点。这次就算是上篇,等后续有时间一枪头搞定了再给大家分享下篇。

*本文原创作者:西毒若相惜,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文地址:http://www.freebuf.com/articles/web/156737.html

技术讨论 | 一次尚未完成的薅羊毛行动相关推荐

  1. delphi cxgrid读取本地image_技术讨论 | PHP本地文件包含漏洞GetShell

    序言 让我们突破重重苛刻环境GetShell,文中有以phpmyadmin包含漏洞做演示. PS:本文仅用于技术讨论与分析,严禁用于任何非法用途,违者后果自负. 漏洞背景 当您在发现PHP本地文件包含 ...

  2. 欢迎加入Hello China技术讨论群组-QQ群:38467832

    欢迎加入Hello China技术讨论群组-QQ群:38467832 在此群组内,我们可一起讨论Hello China及其它嵌入式操作系统的技术问题.应用问题以及其它相关问题. Hello China ...

  3. winr8文件服务器,技术讨论 | Windows全版本提权之Win10系列解析

    原标题:技术讨论 | Windows全版本提权之Win10系列解析 一. 背景介绍 2018 年 8 月 27 日,境外安全研究人员 SandboxEscaper 在其个人主页上披露了影响 Windo ...

  4. 全球最大的中文技术讨论区

    关注好友动态,请访问CSDN个人空间:http://my.csdn.net/ 技术精品文章,请访问CSDN博客:http://blog.csdn.net/ 全球最大的中文技术讨论区,请访问CSDN论坛 ...

  5. sae-v2ex 一个运行在SAE上的类似v2ex的轻型python论坛 - 技术讨论 - 云计算开发者社区 - Powered by Discuz!...

    sae-v2ex 一个运行在SAE上的类似v2ex的轻型python论坛 - 技术讨论 - 云计算开发者社区 - Powered by Discuz! sae-v2ex 一个运行在SAE上的类似v2e ...

  6. 验证码防薅羊毛技术的解读

    薅羊毛这三个字大家都非常熟悉了,典故出自 1999 央视春晚小品<昨天 今天 明天>中的"薅社会主义羊毛". 而现在的薅羊毛主要发生在互联网上,尤其集中在电商平台.P2 ...

  7. 高能分享,直击华坤道威(Fuzer)调度系统架构设计专题线上技术讨论沙龙

    从「鲜为人知」的专业名词,到 2006 年的精准定义,再到如今全面上云时代的「百花齐放」,云计算的发展趟过蛮荒之地,已形成极具规模.高可靠性.通用性的服务,而开源是创新的基础,也是这一场技术革命中的重 ...

  8. 国内免费GPU资源哪里找,让我告诉你最新的薅羊毛“秘籍”

    之前我在知乎介绍了两款练习人工智能算法的应用,都是谷歌的,当时就有网友在评论区提到了国内有百度的 AI Studio,于是产生了兴趣,恰好在那评论出现后几个星期,又看到了 AI Studio 推出了算 ...

  9. 在Hyperf框架中使用中间件实现接口参数混淆,防止重放攻击拒绝薅羊毛

    前言 前面分享了两篇关于Hyperf框架中RPC 同语言框架跨语言框架的调用,今天来点有意思,具有实战意义的技术分享,hyperf框架和laravel非常相似的PHP框架,按理来说下面的思路可以应用于 ...

最新文章

  1. #每天问自己个问题#6. SIP标准协议 RFC3261
  2. Yann LeCun:掌舵Facebook人工智能 | 完美人物志
  3. 微信小程序APP(商超营销类)经验总结
  4. 解决The total number of locks exceeds the lock table size错误
  5. php hook 键盘,Windows C++ 键盘钩子
  6. Java实现redis事务
  7. java学习class5
  8. 智能小车之电源板电路设计分析
  9. 点餐系统小程序源码|小程序点餐系统
  10. 怎样快速使用计算机,三分钟教你如何快速熟悉电脑,怎样快速准确的熟悉键盘打字以及快捷键的使用...
  11. uchome数据字典
  12. 有哪些曾惊艳到你了的古诗词?1024程序员读古诗词
  13. 关于数据采集的配置方法
  14. php汽车找车位,六款停车APP吐血实测 竟能找到免费停车场?
  15. 1.windows 应用程序开发(MessageBox 和 DialogBox 和 WM_COMMAND)
  16. java中作用是什么_Java在编程中的作用是什么?
  17. 打破壁垒,国产毫米波雷达技术热度持续攀升
  18. 把PNG 图片设置透明
  19. 皮马印第安人糖尿病数据集——模型评估
  20. Postgresql杂谈 06—Postgresql中的范围和数组类型

热门文章

  1. SQL Server T-SQL高级查询
  2. distinct的用法
  3. 面向对象基础回顾(二)
  4. Codeblocks 安装
  5. [云炬创业学笔记]第二章决定成为创业者测试3
  6. [云炬创业基础笔记]第二章创业者测试21
  7. 云炬随笔20190701
  8. 今天遭遇了同样的坑,折腾了一上午
  9. 无法解析的外部符号 __imp____glutInitWithExit@12
  10. NorthWest University - Medical Engineering