爬虫抓取系统内容,接口加解密分析
某系统接口加解密分析
业务希望能通过技术手段抓取某个系统的内容到本地,通过观察系统流程,点击查看按钮之后,内容以图片的方式展示,需要不断下滑,才能展示更多内容,每下滑一次,会调用一次接口更新新的图片内容,开始想的是通过模拟浏览器,爬取所有图片内容,但这种方式不够稳定,通过调用接口的方式爬取数据比较稳定,但是分析接口后发现出入参都进行了加密,需要进一步深入研究加解密方式。
查询接口
http://xxx.com/XDXT/crm/menu/getBusinessDataForDownload?0=uawJo/zzzPEUUuIQrJfRsNFj7a8tUfj6CyIbEJhiZ+k=
出入参
一看参数像是进行了加解密,但是不知道采用的是什么方式,需要到源代码里面寻找线索。
uawJo/zzzPEUUuIQrJfRsNFj7a8tUfj6CyIbEJhiZ+k=

格式化Js文件
搜索关键字定位到源码,但是Js文件被压缩,点击要调试的压缩JS文件,然后点击底部的 {} 按钮,代码将会被格式化为可读的形式,此时也可以被断点。

加密方式
先全局搜索url,getBusinessDataForDownload,找到位置后断点,逐步调试分析请求流程,找到发送请求的加密位置。


找到请求接口出入参加解密位置后,断点进入方法后,发现加密方式为AES,模式为ECB,填充方式为PKCS7,以及密钥。

通过在线加解密网页进行测试解密密文,解密完成。

二、登录接口
http://xxx.com/XDXT/XDXT/login
出入参
通过之前的查询接口,已经知道是用了AES加密。
J850/vnlEFgulcAjMq4qkQthSOLw//OsrtyC6yIIn32bwW1Wz7rEr0K/yA/aE2xKzFzq4nfcTeRxxxi62RYugngcAt7VcwcsHpmC7KZNLIH9Qh0rdJxWruleyrKDXS5GxrLVeHYz+RJkT1LNHYiDl3ZtyESqyouF9km/BePzdWsylweTjG5HjlqLjUjysuWN


2.2、加密方式
分析入参,但是登录接口解密后,发现密码还是密文。

查找password关键字,发现这个字段是加密后的字段,原始字段是passwordxs,找到加密相关代码段,发现该字段是通过Base64进行加密传输。
"admin" != e.loginForm.username) {
	var t = o("e762").Base64
	  , i = t.encode(e.loginForm.passwordxs);
	e.loginForm.password = i
}


三、在线工具
https://www.toolhelper.cn/SymmetricEncryption/AES
