猿人学反混淆刷题平台:https://match.yuanrenxue.com/match/2


# 第三题: 抓取 5 页商标的数据,获取出现频率最高的申请号

  1. # 打开 fiddler 抓包,发现请求页面数据之前还请求了一个页面

    • 本来以为简单,请求数据之前需要请求一下另一个 url,却被下面的 js 代码带跑偏。

    • 放到脚本请求一下,返回过来一段 js 代码。

  2. # 大概猜到,加密跟这段 js 代码有关系,直接扣出来放到 pycharm 里格式化 ( ctrl+alt+l ), 分析一下这段代码

    #

    • 上图可以清晰看出这段代码,核心部分应该就是 eval 中的字串,在 debugger 处断住,直接在控制台执行以下 eval 中的代码,代码执行的结果就是关键字串

    • 放到 pycharm 格式化分析一下代码,这特么什么鬼东西,完全不像个正常的 js ,难道扣错了代码???回头再看看抓包请求。。。

  3. #fiddler 重放攻击一下,发现每次请求数据页之前需要请求一下 jssmurl ,否则就会返回 js 代码,看样子最初的想法是对的。

    • 但是为什么放到 python 代码请求有问题。看 fiddler 抓取的数据,正确的数据和不正确的数据返回的数据的响应头有点差别。

    • 下图为错误的数据,正确的数据响应头里有个 set-cookie ,有点可疑, 而且 jssm 那个 url 也返回了有 set-cookie 的响应头

  4. # 再试一下,先请求一下 jssm 获取 set-cookie ,调试了许久,返回的响应头一直没有 set-cookie ,后来完全模拟 fiddler 的请求,终于获取了正确的响应😢

    • 请求头一摸一样,并且用 session 保持请求头的参数顺序, python 特性的问题,字典是无序的,正常的传递 headers ,无法保持顺序。

    这题就很坑,检测请求头的字段顺序,还搞个 js 代码 混淆视听,那段错误的代码完全是用来迷惑人的。

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

渣渣文 微信支付

微信支付

渣渣文 支付宝

支付宝