所有内容仅供学习交流使用!
全国招标公告搜索引擎
- 解决开发者工具打不开问题
- 接口分析
- 解密数据
本次逆向主要是解决该页面接口返回的数据,但是接口所返回的数据是密文,经过分析用的是标准DES,解密成明文即可。
解决开发者工具打不开问题
当我们按F12的时候并不能如愿的打开开发者工具,该网站设置了事件监听,一般是以下这段代码:
document.addEventListener('contextmenu', function (e) {
e.preventDefault();
});
document.addEventListener('keydown', function (e) {
if (e.key === 'F12') {
e.preventDefault();
}
});
这导致我们无法通过F12打开,但是我们可以用Ctrl+Shift+i也可以打开,或者右上角更多工具打开。
接口分析
我们打开开发者工具后,获取接口发现返回的数据是一段加密的:
在网页上要正常显示的话肯定需要把这段加密数据解析成看得懂的数据,我们可以通过json hook打断点然后跟栈找到解密的位置,可以在控制台输入这段代码:
var my_parse = JSON.parse;
JSON.parse = function (params) {
//这里可以添加其他逻辑比如 debugger
debugger;
console.log("json_parse params:",params);
return my_parse(params);
};
然后重新发送请求,就可以看到在这段代码debugger这里断住了,但是网页不止在解析这个加密数据这里用JSON.parse,在走到这里的逻辑前面也会在其他的代码用到JSON.parse,继续执行到这个参数数据是我们接口返回的加密数据为止:
然后我们堆栈往下走,单步执行走下去,找到具体的解密位置:
可以看到注释也说明这里是对响应数据进行处理
解密数据
我们点击这里进入这个函数内部看看里面具体的代码逻辑:
可以看到确实是标准的加密库:
把这段代码复制下来就搞定了!