猿人学反混淆刷题平台:https://match.yuanrenxue.com/match/2
# 第三题: 抓取 5 页商标的数据,获取出现频率最高的申请号
# 打开
fiddler
抓包,发现请求页面数据之前还请求了一个页面本来以为简单,请求数据之前需要请求一下另一个 url,却被下面的
js
代码带跑偏。放到脚本请求一下,返回过来一段
js
代码。
# 大概猜到,加密跟这段
js
代码有关系,直接扣出来放到pycharm
里格式化 (ctrl+alt+l
), 分析一下这段代码#
上图可以清晰看出这段代码,核心部分应该就是
eval
中的字串,在debugger
处断住,直接在控制台执行以下eval
中的代码,代码执行的结果就是关键字串放到
pycharm
格式化分析一下代码,这特么什么鬼东西,完全不像个正常的js
,难道扣错了代码???回头再看看抓包请求。。。
# 用
fiddler
重放攻击一下,发现每次请求数据页之前需要请求一下jssm
的url
,否则就会返回js
代码,看样子最初的想法是对的。但是为什么放到
python
代码请求有问题。看fiddler
抓取的数据,正确的数据和不正确的数据返回的数据的响应头有点差别。下图为错误的数据,正确的数据响应头里有个
set-cookie
,有点可疑, 而且jssm
那个url
也返回了有set-cookie
的响应头
# 再试一下,先请求一下
jssm
获取set-cookie
,调试了许久,返回的响应头一直没有set-cookie
,后来完全模拟fiddler
的请求,终于获取了正确的响应😢请求头一摸一样,并且用
session
保持请求头的参数顺序, python 特性的问题,字典是无序的,正常的传递headers
,无法保持顺序。
这题就很坑,检测请求头的字段顺序,还搞个
js
代码 混淆视听,那段错误的代码完全是用来迷惑人的。