关于某租房网站数据加密的分析
aHR0cHM6Ly93d3cubWFvbWFvenUuY29tLw==
抓包分析
先看看这个网站的首页数据
可以看到首页的 html 是压缩的,但是格式化之后没有看到需要的首页数据。
过滤 xhr 请求看到一个 index.json
的请求
可以看到这个请求的请求参数以及返回值都是密文
返回的结果是一串密文,所以只有定位这个请求的返回值的解密代码,才可以拿到这个数据。
加密定位
因为这个请求是一个 xhr 请求,之前介绍过的 xhr 断点可以用上了,所以先打上断点测试一下,看能不能找到什么
断上之后,可以看到在请求send
的地方已经生成了密文了,所以我们需要在堆栈里往前寻找加密的地方
在堆栈区可以看到有很多的堆栈,先看看能不能从堆栈里找到什么关键的地方
可以看到在异步前,有一个 r.request
这个是存疑的地方,先打上断点。
重新加载页面,断点的位置还是没有看到很清晰的逻辑,但是可以看到这里对每一个请求都使用了拦截器,好像有点要定位到加密了,所以继续单步调试进去看看有没有什么能分析的地方。
经过几次的单步调试,果然在then
这个方法里有我们想要的东西
可以看到在上面传入了data
并且调用了aes_decrypt
这个方法进行了解密。
分析加密
这个加密其实很清晰,关于 aes 的原理、加解密相关的知识我在夜幕的系列课程里都反复提及了。
按照这个网站上的代码提示,把加解密的代码都抠出来也行,或者自行找到关于 key 和 iv 之后带入 aes 中也是可以的。
总结
这篇文章的加密很简单,也是定位出加密逻辑的位置比较麻烦,这个例子在我打断点调试的过程中,看到不少关于 hook 请求加请求头之类的操作,并且对请求和返回都用上了拦截器,在拦截器中做数据加解密的操作。
类似的网站大家可以参考某APP数据网站
它的操作也是类似的。