【Web逆向】某津市公共资源交易平台链接加密分析

【Web逆向】某津市公共资源交易平台链接加密分析

声明

本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除!

一、起因

好奇抓取 天津市公共资源交易平台 的消息列表,感觉是很简单的 get 请求就解决了,但是发现抓取的链接都不可以用。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
我们手动去点击 web 端链接,发现链接和网页源代码中的链接有所出入。

网页源代码:http://ggzy.zwfwb.tj.gov.cn/jyxxcgjg/1005226.jhtml
Web 端链接:http://ggzy.zwfwb.tj.gov.cn/jyxxcgjg/seDcdFCWAJcesrD8hqP+Yw.jhtml

在这里插入图片描述
那就证明我们点击后,网页源代码的链接到 Web 端链接有经过转换,下面我们来一步步分析一下。

二、开始分析

选中某一条新闻的 a 标签,点击事件监听器,再点击 a 标签后面的文件跟进去看看。

在这里插入图片描述
再点击下面的花括号,把代码进行一下格式化,方便我们观看。

在这里插入图片描述
我们可以大概看出,点击后,a 标签的 href 元素传值给 hh,判断 href 是否存在或者是 #,如果不是,证明详情链接存在,再进行下面的代码。

在这里插入图片描述

我们在下面随便打个断点,重刷新一下,点击一个详情页,步进几步,可以看到

在这里插入图片描述
这些都是很正常的网页源代码的链接分解赋值,看来转换为 web 详情页链接是在下面这一段代码:

在这里插入图片描述
我们随便复制一段代码去搜索看看,比如:CryptoJS.enc.Utf8.parse 可以知道这段代码大概是 使用CryptoJS进行AES加密,如果对这个加密有兴趣的话参看官网文档:CryptoJS - docs

我们开始分析下面的代码,大概的意思就是先将那串数字(ccc)用 UTF8 加密成数组

在这里插入图片描述

再对密钥操作,问题来了,这里的 s 密钥是多少呢,打个断点测试一下:

在这里插入图片描述

可以看出密钥 s = ‘qnbyzzwmdgghmcnm’

在这里插入图片描述
再将上面的两个数组用 AES 加密:

在这里插入图片描述
将用 AES 加密过的 en 转为字符串:

在这里插入图片描述
我乍一看这种字符串像是base64加密,再将带有/符号的转为^,因为在url编码中,/符号有特殊意义

在这里插入图片描述
再将数据后面的[==]分割掉

在这里插入图片描述

最后的字符串就是需要的数据了,我们封装一下测试一下:

在这里插入图片描述

经过测试,没毛病,返回的这个字符与真实的一致。

三、源码下载地址

GitHub:某津市公共资源交易平台链接加密分析【麻烦客官点颗Star】

CSDN资源:某津市公共资源交易平台链接加密分析

猜你喜欢

转载自blog.csdn.net/a6661314/article/details/129252139