aqistudy真气网JS逆向 + 数据采集(20220801)

发布于:2023-02-02 ⋅ 阅读:(869) ⋅ 点赞:(0)

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除

作者:zhu6201976

一、目标站点分析

站点:https://www.aqistudy.cn/?mobile=false

难度系数:中级

反爬点:

        1.反调试:无限debugger + 禁用F12 + 禁用CTRL+S + 禁用右键 + 检测浏览器内宽高......

        2.JS动态返回

        3.JS混淆

        4.JS加密:请求参数加密且参数不固定 + 响应加密

 

禁用F12

访问目标网站,按下F12,弹窗提示:

绕过方式:提前打开F12 或 CTRL+SHIFT+I

禁用右键:

绕过方式:代理中间人拦截修改响应检测点 

无限debugger

访问目标网站,提前按下F12,进入无限debugger:

绕过方式:never pause here

说明:网站反调试主要集中在以下两个链接,可直接使用mitmweb + Python脚本解决,一劳永逸。

https://www.aqistudy.cn/?mobile=false

https://www.aqistudy.cn/html/city_realtime.php?v=2.3

二、分析流程: 

1.无线debugger --> never pause here


2.反调试脚本绕过 mitmweb -p 8890 -s mitmweb_test.py

https://www.aqistudy.cn/?mobile=false --> mitmweb 脚本替换 https://www.aqistudy.cn/html/city_realtime.php?v=2.3 mitmweb 脚本替换


3.encrypt_e9OKk3qfXQqT.js 动态返回 --> GET https://www.aqistudy.cn/html/city_realtime.php?v=2.3 提取js链接 请求


4.解密encrypt_e9OKk3qfXQqT.js


5.补充执行环境依赖 https://www.aqistudy.cn/js/jquery.min.js?v=1.3 静态返回


6.提取 加密函数名称 data加密参数名称 解密函数名称


7.执行加密函数 请求


8.执行解密函数 获取结果

三、代码执行结果

此处以采集  杭州、北京、上海、广州、深圳 五城市当日Aqi数据为例,以下为执行日志:

 

四、获取完整代码

本项目已开源,原创首发,完整代码详见github:https://github.com/zhu6201976/aqistudy20220801

欢迎star、交流!


网站公告

今日签到

点亮在社区的每一天
去签到