渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

admin 2025年6月13日13:41:47评论29 views字数 1054阅读3分30秒阅读模式
前言
在一次渗透中,通过下载漏洞获取源码,审计出sql注入漏洞,也是在朋友的帮助下通过js逆向出加密密钥与签名算法,成功拿下sql注入
漏洞挖掘
在响应包中,下载路径部分是base64编码的
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
通过解密可知为服务器的绝对路径,那么就存在文件下载漏洞
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
通过下载历史命令/root/.bash_history,得知源码路径,成功下载到源码
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
漏洞审计
该sql语句存在参数替换,存在sql注入漏洞
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
通过接口进行构造参数
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
但是失败了,原因是存在参数加密与sign签名校验
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
(正常的数据包)
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

目前有两种主要思路:一种是通过前端 JS 逆向工程,还原出加密密钥和 sign 签名逻辑;另一种则是通过后端断点调试来分析请求参数。但由于这套代码无法在本地运行,我选择了第一种方案

js调试
这部分可以看我朋友的文章,讲得比较细,同时文章中还提供了可以尝试通过其他手段与sqlmap联动利用的思路。
https://jielun.site/2025/06/12/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%8A%A0%E8%A7%A3%E5%AF%86+%E7%AD%BE%E5%90%8D%E6%A0%A1%E9%AA%8C+%E7%BC%96%E5%86%99flask%E8%81%94%E5%8A%A8sqlmap%E7%9A%84%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/
通过搜索encrypt,找到加密方法,通过断点得知密钥的数组
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
进行数组转明文:
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

接下来分析签名校验:

渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

此处是先获取所有请求参数中的值,将其拼接成arr

渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入注意后面有两个时间戳,两者不一致,一个是前(timerandom)一个是后(signTime)

整理得到具体步骤:

  1. 加密参数:将每个参数值使用AES-ECB加密(PKCS7填充)并Base64编码

  2. 生成签名:a. 按固定顺序拼接加密后的参数值b. 添加一前一后时间戳(timerandom)(signTime)c. 计算整个字符串的MD5d. 构造JSON字符串:{"md5": md5值, "signTime": 时间戳}e. 使用相同的AES密钥加密该JSON字符串得到签名

  3. 构造HTTP请求头,包含签名和其他必要字段

  4. 发送请求并输出响应

漏洞利用
使用朋友编写的脚本,对equTypes参数进行注入
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
再根据系统源码中的sql语句来编写注入payload
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
由于该注入点存在放大延时的效果,所以这里写的是0.01
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入
证明存在sql注入
渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

原文始发于微信公众号(有恒安全):渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月13日13:41:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试-从下载漏洞到前端加解密+签名校验拿下sql注入https://cn-sec.com/archives/4161594.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息