ios下有很多抓包重写的工具,Thor、Http Catcher、Storm Sniffer等,我选择了Storm Sniffer,原因是解锁内购的价格最便宜,界面也比较干净。
最近刚看了HTTP抓包实战,虽然只看了四分之一,但感觉处理一些简单的问题已经完全可以了。在我看来抓包难点有两点:一是怎样找到对应的接口。二是怎样找到想要修改的参数。下面以产品经理常用工具Xmind来详细写一下抓包重写过程。
Storm Sniffer打开后怎么注册证书之类的流程就不细写,按照步骤来就行了,需要注意的是需要花18r解锁它的终身权限,另外一个150r的会员就没必要了,因为还用不到脚本、重放的功能。
本教程仅限用于学习和研究目的,不得用于商业或者非法用途,否则,一切后果自负。
流程
1、打开抓包和MIMT的开关,再点击启动进入抓包流程;

简单讲一下MIMT的原理,HTTPS 通信中对称密钥 Master Secret 只有通信双方才持有,对于加密流量需要采用中间人攻击(Man-in-the-MiddleAttack,MITM)的方案: 将客户端的网络流量代理到 MITM 主机,再通过一系列的面板或工具将网络请求结构化地呈现出来。
即MITM 不仅要做流量拦截,还需要伪装成真实的客户端和服务端,与真实的通信双方分别建立独立的连接,最后解密密文。
2、打开Xmind随意点击上面的功能,比如订阅会员、查看个人资料等,然后回到Storm Sniffer结束抓包,查看抓包历史记录;

这里我没截完,实际上记录是很多的,我们重点看GET和POST的请求。这里就涉及到之前讲的找到对应的接口比较难,不过一般来说接口命名方式还是比较规范的,我们可以尝试搜索userinfo、user、vip、endtime、grant等参数去定位,这点需要比较丰富的经验。
3、定位并分析参数值;

这里我们发现了疑似的参数,Trial意思是试用,expireTime意思是截止时间,这里是0可能意味着我们还没有订阅,所以截止时间为0。这里我们改参数需要做一个时间戳转换,截止时间越晚越好,可以利用时间戳工具实现,另外思考一下Trial的反义词是什么。
4、重写规则;
我们点击请求详情下方的重写规则,新建规则后进行编辑,名称和描述自定义,然后点击URL表达式进行添加。

预览表达式填写接口地址,方法与协议也要与接口一致,再填写域名和PATH即可。

回到上一级页面,再点击加规则,因为我们修改的是Response Body的参数,所以类型、动作选择如下。

这里又涉及到正则表达式的概念,自从当了产品之后,相关知识快还回去了,这里紧急补习一下,参考正则表达式手册,对于这种简单的正则替换,我们也可以偷懒一下,使用([\s\S]*?)
万能匹配表达式,匹配一切,包括空格,换行符。
如此expireTime就替换成了我们之前自定义转换后的时间戳,而status参数的改写,回到上一级页面参考以上方法再新加一条规则即可(仅做思路分享,学习交流,而不是教人破解)。
5、效果检验
保存重写规则并启用,回到主页面,打开MITM和重写开关,最后启动。

我们重启Xmind,登录账号后订阅会员,发现已经成功启用,有效期也是我们之前设定的日期,而其他会员功能也可以使用。

针对Xmind的抓包重写到此结束。
参考文档
【1】HTTP抓包实战——肖佳
【2】从原理到实战,全面总结 Android HTTPS 抓包——掘金
【3】图解 HTTP(第 7、8 章)—— 上野宜
【4】HTTPS中间人攻击实践(原理·实践)——博客园
怎么联系你教程
@wu: 已经发给您邮箱了
求详细教程谢谢啦
@momo: 已经发啦
求详细教程
求详细教程谢谢!
求详细教程
大哥求详细教程
已收到教程,非常感谢
能给个详细教程吗
谢谢?
好像有人反馈新版本xmind不行了,可以抓包itunes下载老版本解决
求教程谢谢
怎么联系你呢?求一下教程谢谢你了
可以求个教程嘛?
求详细教程
求教程
您好 可否发一下详细教程
好哥哥发下教程好吗, 初学者都看不太懂
大佬,怎么联系你教程啊