记一次微信抓包以及网课题目查询

微信自7.0版本后加强了对https证书限制,进行了SSL pinning,只信任微信内置的SSL证书,导致通过伪造CA证书的中间人抓包时在证书上被阻断了。这里记录一下相关的一些了解以及一次抓包实践。

目前APP为了阻止中间人劫持可以使用的办法主要有 SSL绑定 和https双向认证。https对服务器开销比较大,在达到同样效果的情况下SSL绑定显得更加实用。因此目前被使用最多的办法主要是 SSL pinning,不仅是微信,twitter也使用了这SSL 绑定来保护应用流量。

因此要抓取微信的包就必须绕开 SSL pinning::一个比较暴力的办法是直接对app进行逆向,反混淆,找到相关代码进行修改,想怎么方便抓包怎么来,不过过于麻烦,耗费精力;另一个简单办法就是使用现成的Xposed模块 JustTrustMe在Android上hook类com.android.org.conscrypt.TrustManagerImpl下的函数以禁用所有的SSL-pinning。

遇到一个叫做 网课答案大全 的小程序,比起公众号查题,小程序查题体验相当不好,由于不能在PC上运行且不能复制粘贴,使用效率极低,为此还用上了ApowerMirror工具进行Android投屏Windows然后截图OCR工具进行识别转文字,相当的麻烦。于是萌生直接把小程序相关接口抓取出来的想法,但前年使用fiddler直接进行抓包的方法不仅麻烦而且也已经不能使用了,手机也不打算root,于是最后使用 太极 + JustTrustMe + HttpCanary 成功抓到了需要的数据。

通过太极免root使用xposed框架来安装微信和JustTrustMe,HttpsCanary本身就是安卓系统下的免root抓包工具,非常方便好用。

httpcanary得到的包

分析后发现只需要在post请求中传入一个“content=%问题%”的数据即可返回一个包含了匹配题目和答案的json。

使用postman进行测试

python脚本简单写了一个命令行工具。pyinstaller随手打包成exe了,需要的下方自取。(用PyQt可以做漂亮的UI,但没必要。)

使用界面

下载地址:蓝奏云

参考

发表评论

电子邮件地址不会被公开。 必填项已用*标注