
Dieses Projekt demonstriert eine Server-Side-Request-Forgery-Schwachstelle (SSRF) in der Datei pictureproxy.php.
Eine Schwachstelle in pictureproxy.php erlaubt es entfernten Angreifern, beliebige Anfragen durchzuführen, indem URLs in den Parameter url injiziert werden. Diese SSRF-Schwachstelle kann ohne Authentifizierung ausgenutzt werden, was sie besonders gefährlich macht.
Der verwundbare Code befindet sich in der Datei pictureproxy.php. Das Problem entsteht, weil die Funktion den Parameter url nicht ordnungsgemäß validiert. Die Variable $_GET['url'] wird an die Funktion file_get_contents() übergeben, die den Inhalt der angegebenen URL abruft. Dies kann zu SSRF führen.
Hier ist ein einfacher Proof of Concept, der zeigt, wie die Schwachstelle ausgenutzt werden kann:
<?php
if (isset($_GET['url'])) {
$image = file_get_contents($_GET['url']);
header("Content-type: image/jpeg");
echo $image;
} else {
echo "Invalid request";
}
Zum Testen der Schwachstelle können Sie den folgenden curl-Befehl verwenden:
curl -i -s -k http://127.0.0.1/pictureproxy.php?url=file:///etc/password
Ein Test mit einer offenen Weiterleitungsschwachstelle:
https://64.media.tumblr.com/f07b73b374dc2ff6d5e4dbf39d2a6467/tumblr_nvani31DCm1u5url1o1_1280.jpg
Banner
"title="ChatGPT个人专用版""
Dieses Projekt verdeutlicht, wie wichtig die ordnungsgemäße Validierung von Benutzereingaben ist, um SSRF-Schwachstellen zu vermeiden. Stellen Sie immer sicher, dass Parameter wie URLs gründlich überprüft werden, bevor sie verarbeitet werden.