如果审计到了一个文件下载漏洞如何深入的去利用
1. 确认与初步利用
首先,要确认这是一个真正的文件下载漏洞,而不是一个伪装的假象。通常,漏洞代码看起来是这样的:
<?php
// ...
$file = $_GET['file'];
$path = "/var/www/html/downloads/" . $file;
if (file_exists($path)) {
header("Content-Type: application/octet-stream");
readfile($path);
} else {
echo "File not found.";
}
// ...
?>
这里的关键在于 $file = $_GET['file'];
这行代码没有对用户输入进行任何过滤
初步利用方式:
- 路径遍历(Path Traversal): 尝试使用
../
来向上跳目录,下载服务器上的敏感文件- Payload:
?file=../../../../etc/passwd
- 目的: 验证漏洞是否存在,并尝试下载系统敏感文件,如
/etc/passwd
(Linux 用户列表)或C:WindowsSystem32driversetchosts
(Windows 主机文件)
- Payload:
- 下载源码: 尝试下载网站的 PHP 源代码文件。
- Payload:
?file=../../../../var/www/html/index.php
或?file=../../../../var/www/html/config.php
- 目的: 获取网站的数据库连接信息、API密钥或其他硬编码的凭据,为下一步攻击做准备
- Payload: