Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析

图片

建议收藏 | 最全的 JS 逆向入门教程合集

目标网站

aHR0cHM6Ly94aWFwaS54aWFwaWJ1eS5jb20vc2VhcmNoP2tleXdvcmQ9JUU3JTk0JUI3JUU3JUFCJUE1JUU0JUI4JThBJUU4JUExJUEz

先来看看这个网站需要分析的加密是什么?

这次的网站例子来自「咸鱼的Python交流群」,一个群友遇到之后发到群里的。【图1-1】

image.png图1-1

在这个网站搜索商品的时候会出现请求头if-none-match,之前咸鱼的很多例子都没有写到如何分析请求头的加密参数应该如何分析,所以拿这个例子大概讲讲。

定位加密

按照之前的套路,想到的第一步是搜索if-none-match,搜索的结果非常具有迷惑性。【图2-1】

image.png图2-1

打开这个文件,直接检索if-none-match没有找到命中项,但是搜索If-None-Match,可以看到有相关的命中项的。【图2-2】

图片图2-2

扫描二维码关注公众号,回复: 13136863 查看本文章

不过咸鱼试过在这里打上断点,重新加载没有断上,初步判断不是这里生成了这个请求头参数。

所以这里尝试使用Xhr断点的方式分析。【图2-3】

图片图2-3

打上这个断点之后,重新加载页面。【图2-4】

图片图2-4

可以在这里看到t的值中就包含了我们需要的请求头if-none-match,所以可以猜测在这个 xhr 断点之前就已经完成了这个值的生成。

所以这里可以先在这个 xhr 断点前下一个断点之后暂时取消 xhr 断点。【图2-5】

图片图2-5

到这里之后我们直接单步调试,可以看到下面这段逻辑【图2-6】

图片图2-6

可以看到有写入请求头的位置了,我们分别打上断点,逐一分析是不是想要的内容。

经过分析可以看到在代码中有一段在字典中赋值的操作,并且这里也找到了加密的字段名。【图2-7】

图片图2-7

所以上面就是加密字段的加密位置。

分析加密

找到加密位置之后进一步分析加密的逻辑,可以看到这个加密的逻辑非常简单,结合上下文的代码可以看到这里拼接了字符串i.a + "-" + u("" + i.a + u(t) + i.a),这里反复调用的u也可以在上面找到。未知的就只有ti.a

通过分析可以看到这里的i.a就是固定的字符串55b03【图3-1】

image.png图3-1

这里的开头和抓包中的值的开头一样。【图3-2】

image.png图3-2

找到i.a之后,再回头看看这里的t,就是传入的参数,没有什么特殊的地方。

加密很简单直接带入 Python 实现的加密即可。【图3-3】

图片图3-3

Love & Share 图片

[ 完 ]

图片


猜你喜欢

转载自blog.51cto.com/15127522/2686097