济南漱玉平民防疫产品预约小程序
最近几天预约不到口罩,想办法截取到手机预约的请求,然后用工具或者自己写代码再次发送请求就可以了。
思路
1、截取请求
2、修改请求
3、到点重复发送
1、怎么截取请求呢,用fiddler,百度下载安装,完成后开启自己的代理,让手机发的请求经过电脑再走到路由器。
完成后重启fiddler,就能开启代理了。
2、手机wlan连接这个代理
手机和电脑在同一个WiFi下,同一个局域网下
找到自己电脑的ip地址,手机上访问ip地址加端口号,上面设置的8888
手机安装fiddler的证书,点击fiddler certificate,下载下来证书,然后安装这个证书,允许。找不到的 设置->通用->关于本机->证书信任设置,如果没有开启服务,点击‘开启’。
这时候电脑就能抓到手机发出去的请求了。iPhone的设置用苹果自带的浏览器Safari,安装之后-通用-关于本机-信任证书
3、早晨7点截取一个预约时候的请求
点击我同意的时候 会发现请求头里面会有自己的openid,这个玩意要复制出来,下面的 sypm-health.shunnengnet.com 漱玉平民-健康 顺能?舜能? /api/register 接口 这个就是最后的提交了。
截取到这个请求就可以重复发送了,看返回500,503的时候就再次请求,直接点击replay,知道返回200的时候看看是不是预约成功了。
4、修改请求成别人的
这个register拿到了,保存起来。当天我抢到了,但是家人的微信没有抢到,怎么办呢,这时候截取到家人微信点击我同意,拿到一个openid和登陆的手机号,打开成功的请求,把请求头head里面的openid和手机号改掉,改成家人的,把请求的raw里面的openid和身份证手机号都改成家人的,我们在一起,收获的药店就不用改了。改完之后发出一次看一下,有正常的返回就行了。保存好
第二天早晨7点准时发请求,多点几下replay,返回200的时候看一下结果, 基本两分钟之内就能预约到。现在俩微信号预约,每次三个用三天,三天之后到点再预约
注意,千万别用队列请求,我发了1000次请求,结果手机号和ip就被封了,这个网络的手机只要连接这个wifi返回的就是一直繁忙,其他手机换流量就是返回预约已达上限,之后几天联系了小程序的开发者,那边说删除后重新登陆就行,不过总感觉是那边放开了ip和账号的封锁。
好了基本就是这样,拦截请求,修改请求,发送请求,查看结果,抢不到只能想办法了。
2.22 济宁上线了,原来只有济南的,加了一个参数,areaCode,导致今天早晨预约参数解析失败,预约失败。
通过预约酒精消毒水来看预约提交的请求,截取到之后才发现是里面多了一个参数,这时候把酒精换成原来的口罩,尝试一下返回已经有一条预约记录,感觉应该是能过去了,再换上其他的账号openid返回预约达到上限,这个请求应该是请求的没问题了。
2.24今天微信预约发现口罩的类型增加了,有四种类型,几家公司生产的价格不同,按以前的报文进行提交的时候发现返回该门店预约满了,不知道是怎么判断的。
仔细的跟踪后发现,原来门店的列表信息在js文件中,里面有所有门店的信息,code都有,拿到信息之后改提交请求,附近的几家门店都造好请求等待明天。
同时发现提交的时候货物的信息和之前的有变化,好,再追货物哪里来的,发现还是写在js中的,根据预约酒精和消毒液提交的货物信息和js中的货物明细一致,进一步改造预约的请求,把口罩的明细改成货物明细js文件中的全复制过来。
又发现这一版不用选择街道了,address不用写东西,好,改造请求,去掉地址相关的几个字段的信息。等待明天预约
3分钟的时间,口罩就抢没了,出此下策我也是没有办法,拦截个请求再发送,我也不知道这样搞能到什么时候,漱玉的开发人员看到了以后这个方法就没用了,
你觉得我这样搞,顺能网络的人会不会让我去他那上班
3.5最近几天发现,在提交请求的时候,那边校验了时间,在请求头中有13位的x-time: 1583363208371时间戳,时间戳超长之后就会显示登陆失效,还有一个64位的签名字段,x-sign:。
把时间戳改成当前的时间后,还是不能预约成功。感觉应该是对时间进行了加验签操作,查看了所有的js文件,没有发现怎么加密的,至此,此方法彻底失效。