点击上方“咸鱼学Python”,选择“加为星标”
第一时间关注Python技术干货!
目标网站:
aHR0cHM6Ly93d3cuYWxpd3guY29tLmNuL3JlYWRlcj9iaWQ9NjgxMzkyMyZjaWQ9Njc0MTc0
抓包分析与加密定位
这个网站上一篇文章的加密的形式是一样的,也是对正文的内容进行加密完成反爬。
一样还是先抓包看下请求【图1-1】
![null](https://i-blog.csdnimg.cn/blog_migrate/b2b61c4812459e25cc0042c2385835b5.png)
请求的参数有一个 sign
值疑似加密,接下来看看返回的正文加密的内容【图1-2】
![null](https://i-blog.csdnimg.cn/blog_migrate/031ba1afd2104e8caac68218922d166a.png)
可以看到ChapterContent
这个值是加密的字段。
按照上一篇文章的思路,我们直接检索看看。【图1-3】
![null](https://i-blog.csdnimg.cn/blog_migrate/d31eed23d06dffd5f62aa5ac3667d271.png)
根据这一个结果继续跟进文件看看【图1-4】
![null](https://i-blog.csdnimg.cn/blog_migrate/bb2722ca1a961a804904a199f3d2b553.png)
在文件中的检索结果有两个,但是并不妨碍我们直接可以猜到加密的位置是123
行,这个_decodeCont
从语义上还是比较好分别出来这个就是解密的地方。
还是打上断点重新加载一下,可以看到传入的参数就是我们刚刚在【图1-2】中看到的密文。【图1-5】
![null](https://i-blog.csdnimg.cn/blog_migrate/0a1a1c3d40224b1640191047d9141d15.png)
我们继续跟进去就可以看到这个解密方法的全貌了。【图1-6】
![null](https://i-blog.csdnimg.cn/blog_migrate/54ef3ab87d32a43b062db33b4bb6272f.png)
这个解密的逻辑看着就很简单。
接下来继续看看上面疑似加密的sign
值。
通过直接检索没找到加密的位置,后面发现这个值是直接通过页面传递的。
加密分析与扣取
这个加密并没有应用其他的加密方法,直接把加密的整个函数扣取出来就完事了。
传入加密的密文,运行一下就可以看到明文了。【图2-1】
![null](https://i-blog.csdnimg.cn/blog_migrate/5c702281cff71cd79b5d79dfca04d3ff.png)
Python 爬取
上面疑似加密的地方已经全部找到了。
所以通过 Python 爬取的难度近乎于无,但还是要简单尝试一下,还是使用execjs
执行我们扣取好的 js 文件。
with open('decrypt.js', 'rb') as f:
js = f.read().decode()
其他的代码就是 request + xpath 没啥新的东西。
直接上结果【图3-1】
![null](https://i-blog.csdnimg.cn/blog_migrate/a3a53a48b9b94419dbe78ff8355f9c54.png)
以上就是今天网站加密分析的全部内容了,如果对你有帮助,希望可以点个好看支持一下~
感谢~