摘要:
第54题 无限debugger练习/入门js 本题打开控制台就会自动无限 debugger,解决无限 debugger 的最简单方式就是使用 Firefox 121 版本以上的版本,Firefox 121 以上的版本会对代码内部的 debugger 自动过滤,只有手动打的断点才会生效。 本题是无限 阅读全文
摘要:
第21题 一个套了轻ob的webpack 观察接口请求参数可以发现,需要我们逆向参数 s,经过查看调用堆栈,很容易找到参数位置,如下: 可以看到,这是一个 webpack 文件,此时有两种处理方式,第一种是直接复制该文件到本地,将参数暴露到全局,根据报错修补环境;第二种是先将加载器函数复制出来,然后 阅读全文
摘要:
AST 是源代码的抽象语法结构的树状表示。利用它可以还原混淆后的js代码。 @babel/parser 是js语法编译器 Babel 的 nodejs 包,内置很多分析 js 的方法,可以实现js到AST的转换。 JS 转为 AST:https://astexplorer.net/ 准备工作: 需安 阅读全文
摘要:
案例引入: 先看一个网站:https://www.httpbin.org/delay/5, 该网站会强制等待5秒后才返回响应。如果想访问100次该网站,单线程的情况下,至少要等待500秒才能全部执行完毕。为了提高访问效率,可以使用协程实现加速。 首先需要了解一些基础概念: 阻塞:指程序未得到所需计算 阅读全文
摘要:
在数据采集的过程中,可能需要一些进程间的通信,如 一个进程负责构造爬取请求,另一个负责执行这些请求; 某个数据爬取进程执行完毕,通知另一个负责数据处理的进程开始爬取数据; 某个进程新建了一个爬取任务,通知另一个负责数据爬取的进程开始爬取数据。 为了降低进程耦合度,需一个消息队列中间件来存储和转发消息 阅读全文
摘要:
第16题:表情包+sojson6.0 抓包分析可知,需逆向safe参数,根据调用堆栈很容易找到safe的生成位置,如下: 上方有一段特殊字符组成的内容,查看上下文并未找到token,因此token很可能是这段特殊字符构成的代码生成的,单步调试可以发现,上面是在进行赋值操作,最后一行很长的那一行是进行 阅读全文
摘要:
第12题:静态css字体加密 抓包发现,返回结果数字均为这种格式 ,经对比发现,该串字符串与数字0~9有着一一对应关系,响应匹配即可: data_set = { '': '1', '': '2', '': '3', '': '4' 阅读全文
摘要:
第11题:人均会解jsl 控制台抓包可以看到,页面请求了两次 https://www.python-spider.com/challenge/11 第一次返回了一段js代码,第二次返回了所需数据: 对比两次请求参数发现,只有cookie中的__jsl_clearance发生了变化,其他参数均相同,因 阅读全文
摘要:
第六题:session保持检测 使用session请求即可:session = requests.Session() 第七题:请求规律检测1-post 根据请求接口找规律,在每一页请求前请求一次https://www.python-spider.com/cityjson即可 requests.pos 阅读全文
摘要:
第1题. 无混淆js加密 抓包可以看到,有一个请求头参数 safe 加密。 根据调用堆栈很容易找到加密参数位置: 可以看到,safe 是由固定字符串 a = '9622' 加 时间戳,经base64编码后,传入 hex_md5 方法得到。 进入 hex_md5 ,直接复制 md5.js 到本地,调用 阅读全文