前言
本文是对上一篇文章的延续,之前测试太过于粗糙,现在看看还是得好好学习,之前说需要旧版微信开启调试工具来绕过只能在微信打开的限制,这个方法可以但是没必要。针对测试人员不需要关心页面排版之类的,所以直接在浏览器添加上我们认证后的cookie和agent即可。
上一篇说到页面关键js是远程请求的,那么直接修改返回包的js即可,无须其他操作,这里可以下载咱们国产的工具Yakit,可以一键拦截所有返回包/。
准备工作
因为目标是限制微信才能打开,所以先登陆自己的微信,获取cookie和user-agent,浏览器插件我是用的Cookie-Editor和User-Agent Switcher and Manager:
需要注意的是,Cookie-Editor必须得先进入到页面后才能添加,所以还得先手动抓包替换cookie进入页面后再进行替换。
开始测试
加密分析
打开我们的yakit,劫持响应点击所有,就能抓到每一个返回包了。
抓到关键js后,在yakit里面可以直接打开浏览器分析,按照之前的方法,这次的最终提交参数名字是
param,还是先在js全局搜索param:
看到这个C函数,简单分析一下,发起一个ajax请求,请求成功后的响应数据返回给回调函数的参数t,用JSON.parse(t)把返回的数据解析为对象再读取里面的rtnCode值如果等于"SUCCESS",则把rtnData值赋给e。返回的ajax数据如下:
继续发送ajax请求,从抓包数据和字面意思来看请求的地址也就是最终发送结果的接口,发送的data用g函数加密。g函数有两个形参,第一个是使用JSON.stringify()将一个包含boxNum和channel属性的对象转换成JSON字符串,第二个是变量e,也就是上面的rtnData。
那么我们现在知道只需要知道加密函数g就可以了,再全局搜索g (
再输出即可。
直接修改js
既然我们抓到了返回的js,那么无需什么加密解密,直接修改返回包的js即可。