爬虫抓取系统内容,接口加解密分析

某系统接口加解密分析

业务希望能通过技术手段抓取某个系统的内容到本地,通过观察系统流程,点击查看按钮之后,内容以图片的方式展示,需要不断下滑,才能展示更多内容,每下滑一次,会调用一次接口更新新的图片内容,开始想的是通过模拟浏览器,爬取所有图片内容,但这种方式不够稳定,通过调用接口的方式爬取数据比较稳定,但是分析接口后发现出入参都进行了加密,需要进一步深入研究加解密方式。

查询接口

http://xxx.com/XDXT/crm/menu/getBusinessDataForDownload?0=uawJo/zzzPEUUuIQrJfRsNFj7a8tUfj6CyIbEJhiZ+k=

出入参

一看参数像是进行了加解密,但是不知道采用的是什么方式,需要到源代码里面寻找线索。

uawJo/zzzPEUUuIQrJfRsNFj7a8tUfj6CyIbEJhiZ+k=

image-20251011154759559

格式化Js文件

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

image-20251011175133435

加密方式

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

image-20251011154922661

image-20251011160031495

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

image-20251011160117189

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

image-20251011160747735

二、登录接口

http://xxx.com/XDXT/XDXT/login

出入参

通过之前的查询接口,已经知道是用了AES加密。

J850/vnlEFgulcAjMq4qkQthSOLw//OsrtyC6yIIn32bwW1Wz7rEr0K/yA/aE2xKzFzq4nfcTeRxxxi62RYugngcAt7VcwcsHpmC7KZNLIH9Qh0rdJxWruleyrKDXS5GxrLVeHYz+RJkT1LNHYiDl3ZtyESqyouF9km/BePzdWsylweTjG5HjlqLjUjysuWN

image-20251011151114980

image-20251011151400406

2.2、加密方式

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

image-20251011152534169

查找password关键字,发现这个字段是加密后的字段,原始字段是passwordxs,找到加密相关代码段,发现该字段是通过Base64进行加密传输。

"admin" != e.loginForm.username) {
	var t = o("e762").Base64
	  , i = t.encode(e.loginForm.passwordxs);
	e.loginForm.password = i
}

image-20251011152855699

image-20251011153007784

三、在线工具

https://www.toolhelper.cn/SymmetricEncryption/AES