37

JS逆向- 阿里文学加密逻辑分析

 3 years ago
source link: http://xianyucoder.cn/2020/07/16/每日JS-阿里文学/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

目标网站:

aHR0cHM6Ly93d3cuYWxpd3guY29tLmNuL3JlYWRlcj9iaWQ9NjgxMzkyMyZjaWQ9Njc0MTc0

抓包分析与加密定位

这个网站上一篇文章的加密的形式是一样的,也是对正文的内容进行加密完成反爬。

一样还是先抓包看下请求【图1-1】

AVRf2a.png!mobile

请求的参数有一个 sign 值疑似加密,接下来看看返回的正文加密的内容【图1-2】

euqUry.png!mobile

可以看到 ChapterContent 这个值是加密的字段。

按照上一篇文章的思路,我们直接检索看看。【图1-3】

ZFvyyuf.png!mobile

根据这一个结果继续跟进文件看看【图1-4】

zmymmuA.png!mobile

在文件中的检索结果有两个,但是并不妨碍我们直接可以猜到加密的位置是 123 行,这个 _decodeCont 从语义上还是比较好分别出来这个就是解密的地方。

还是打上断点重新加载一下,可以看到传入的参数就是我们刚刚在【图1-2】中看到的密文。【图1-5】

3AjA3qE.png!mobile

我们继续跟进去就可以看到这个解密方法的全貌了。【图1-6】

qYBZ7f.png!mobile

这个解密的逻辑看着就很简单。

接下来继续看看上面疑似加密的 sign 值。

通过直接检索没找到加密的位置,后面发现这个值是直接通过页面传递的。

加密分析与扣取

这个加密并没有应用其他的加密方法,直接把加密的整个函数扣取出来就完事了。

传入加密的密文,运行一下就可以看到明文了。【图2-1】

yaEFBzu.png!mobile

Python 爬取

上面疑似加密的地方已经全部找到了。

所以通过 Python 爬取的难度近乎于无,但还是要简单尝试一下,还是使用 execjs 执行我们扣取好的 js 文件。

with open('decrypt.js', 'rb') as f:
    js = f.read().decode()

其他的代码就是 request + xpath 没啥新的东西。

直接上结果【图3-1】

a2AFNzb.png!mobile

以上就是今天网站加密分析的全部内容了,如果对你有帮助,希望可以点个好看支持一下~

感谢~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK