python闲鱼监控_Python爬虫进阶必备 | 关于某监测网站的内容加密分析

点击上方“咸鱼学Python”,选择“加为星标”

第一时间关注Python技术干货!

31fb6489d5db95d43c76782afb0455d5.png

目标网站

IGh0dHBzOi8vd3d3LmFxaXN0dWR5LmNuLw0K

还是上次的那个网站,上一篇分析了关于反爬的绕过,在正文里随口提了一句说这个网站关于正文加密的部分很简单,晚上就收到几位读者的私信,希望能够讲讲关于正文的加密是如何解密的。

43e20db841a8ce7d067ec60c602b42cf.png

打开网站,关于如何过 debugger 反爬,直接参考上一篇的内容,这里不做重复了。

请求分析

打开控制台之后,重新加载一下页面,捕捉请求。【图2-1】

b69c6459391c80ca1993d4d912a99026.png

图2-1

可以看到有一条xxxapi的请求链接,可以看到请求参数也加密了。【图2-2】

aeea312b4f84803871e95b875e0c510a.png

图2-2

除了参数之外,同样这个请求的返回值同样也是密文的。【图2-3】

aad24cbf8658b73a389f2b00682a85c4.png

图2-3 | 部分结果截图

经过请求分析,明确了现在要分析的加密是参数和返回值。

加密参数分析

先开始关于参数的分析。

通过多次加载请求,发现所有的参数加密的名字都是不相同的,所以全局检索参数名定位到参数加密的可能性很小。所以直接用 XHR 断点。【图3-1】

d5e3e0ae8c89a1bdee7d31870e5f6713.png

图3-1

重新加载页面,加载数据就断上了。

可以看到这里是请求发起的地方,数据已经加密好了。【图3-2】

800f18f71c113d10617461c05744121e.png

图3-2

所以需要分析堆栈,在【图3-3】所示的位置,我们找到了生成好的参数。

558bd44a71795182fb475fb1157d539f.png

在这里可以看得到,参数是经过pxteFCahl这个方法生成的。【图3-4】

03907dea7749a567b48a167bbf0ad700.png

图3-4

追进去可以看到参数的生成逻辑了。【图3-5】

c7ae05eec93e7493a52e720237b52343.png

图3-5

加密参数就是将相关的参数哈希之后再 Base64 编码的结果,如果直接用 Python 复写需要注意 NodeJS 与 Python 的关于 Json 转化是有一点点区别的。

如果搞不明白的可以直接扣一下代码,对新手友好。

d6a6ca3bf2bb7fb2b815ad5a831415c9.png

返回值解密

分析完加密参数后,再来看看返回值是如何解密的。

在上一部分,我们定位到了加密参数生成的地方,在生成的位置下方就是加密返回值解密的位置。

在 Ajax 中,发起请求后,可以根据请求的结果执行不同的操作,这里在请求成功后,执行了结果的解密。【图4-1】

ef51420d4a5278aba48bbe4cd0f64511.png

图4-1

上图的daA0vPWcfr2就完成了返回结果的解密,我们可以追进去看看他的逻辑。【图4-2】

745e9dc308a02aa320eda78083bd9a00.png

图4-2

可以看到这个逻辑也是很简单的,加密的结果先后经过 AES + DES + BASE64 的解密/解码就可以得到明文的代码了。

并且相关的秘钥都可以直接检索得到。【图4-3】

45edd031a08b184a061c116bbf19faf4.png

图4-3

这类简单的加密代码,扣取起来难度很低,也可以用 Python 直接复写。

简单扣取之后,就可以直接将加密的返回值带入运算了。【图4-4】

cd466fc8bed3a51d57245b9eda0f351f.png

图4-4

总结

这个网站还是比较适合新手练手,加密的难度相比上一个版本略有下降,更多的是对浏览器使用方面的考察。

没有动手扣过代码的可以试试扣取一下代码,非常适合新手动手实践。

[ 完 ]

c663e4fab8f29e94327fbc3d8953dc8c.png

喜欢文章,点个

在看

7b5aed0430c027c1e4e788db0bf00424.png

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值