作者声明:本文仅供参考学习,请勿用于其他用途,违者后果自负!!!!
案例:壹心理
一.目标分析
进入页面打开控制面板会发现有个无限debugger。
解决无限debugger有两种方式:
- 编写hook脚本,将无限debugger过掉。
- 使用一些独特的浏览器,如:火狐,对于无限debugger免疫的。
我用的是魔改过的chrome浏览器,可以忽略这个无限debugger;
发现的规律:
1.1分析步骤:
1.打开脚本断点,清空网站数据,进行页面刷新;
一步步调试找到自己想要的
2.通过跟栈发现acw_sc__v2参数值如下:
3.扣下来,会发现这是个ob混淆,会发现代码运行卡住了,这里讲一下,这种情况有两种情况:1.定时器。2.格式化。将这些代码进行压缩一下问题就解决了。
主要缺失的环境就一个
window = global;补上之后代码如下:
window = global; //arg1的值第一次请求可以获取到 arg1 ='data' reload = function(v) { window._vv = v; }; //压缩后的ob混淆代码 require("./01js.js") function get_acw(){ return window._vv }4.发现结果成功了,接下来一下便知真伪;
二.代码实现
import requests import execjs import re headers = { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-language": "zh-CN,zh;q=0.9", "cache-control": "no-cache", "pragma": "no-cache", "priority": "u=0, i", "referer": "https://www.xinli001.com/", "sec-ch-ua": "\"Google Chrome\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "sec-fetch-dest": "document", "sec-fetch-mode": "navigate", "sec-fetch-site": "same-origin", "sec-fetch-user": "?1", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36" } url = "https://www.xinli001.com/" res = requests.get(url, headers=headers) acw_tc = res.cookies["acw_tc"] print("获取到的acw_tc的值是:", acw_tc) tt = re.findall(r"var arg1=(.*?);", res.text)[0] with open("demo.js", "r", encoding="utf-8") as f: fang =f.read().replace("'data'",tt) js = execjs.compile(fang) acw_sc__v2 = js.call('get_acw') print("获取到的v2的值是:",acw_sc__v2) cookies = { "acw_sc__v2": acw_sc__v2, "acw_tc": acw_tc } response = requests.get(url, headers=headers, cookies=cookies) print(response.text)就分享到这里!