前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫进阶必备 | 关于某监测网站的内容加密分析

Python爬虫进阶必备 | 关于某监测网站的内容加密分析

作者头像
咸鱼学Python
发布2020-02-26 14:33:05
7010
发布2020-02-26 14:33:05
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python

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

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

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

目标网站

IGh0dHBzOi8vd3d3LmFxaXN0dWR5LmNuLw0K

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

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

JS逆向 | 分析某监测网站的 debugger 反爬措施

请求分析

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

图2-1

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

图2-2

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

图2-3 | 部分结果截图

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

加密参数分析

先开始关于参数的分析。

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

图3-1

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

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

图3-2

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

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

图3-4

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

图3-5

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

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

返回值解密

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

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

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

图4-1

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

图4-2

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

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

图4-3

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

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

图4-4

总结

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

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

[ 完 ]

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目标网站
  • 请求分析
  • 加密参数分析
  • 返回值解密
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档