
CSRF-Schwachstelle PoC und Leitfaden zur Behebung für die Deaktivierung von Mitarbeitern in einem Admin-Panel. Enthält CVSS-Bewertung, Schritte zur Angriffsreproduktion und Empfehlungen zur Sicherheitshärtung.
Die Mitarbeiter verwalten-Funktionalität ist anfällig für Cross-Site Request Forgery (CSRF).
Ein Angreifer kann einen eingeloggten Admin dazu verleiten, eine gefälschte Anfrage zu senden, die einen Mitarbeiter (z. B. inid=1) deaktiviert, ohne dass der Admin davon weiß oder zustimmt.
Vektor-String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
Modul: Admin-Panel → Mitarbeiter → Mitarbeiter verwalten
Aktion: Mitarbeiter deaktivieren (über den Parameter inid)
Als Admin anmelden
/admin und melden Sie sich mit gültigen Admin-Zugangsdaten an.
Mitarbeiter verwalten öffnen

Die Deaktivierungsanfrage abfangen
Schalten Sie in Ihrem Proxy (z. B. Burp Suite) die Abfangfunktion ein.
Klicken Sie bei einem Mitarbeiter auf Inaktiv und fangen Sie die Anfrage ab, die den Benutzer deaktiviert.
Notieren Sie den Parameter inid in der Anfrage (z. B. inid=1).

CSRF-PoC erstellen
inid=1 sendet, um Benutzer 1 zu deaktivieren.
CSRF beim Opfer auslösen
Hosten oder öffnen Sie das HTML-PoC in einem Browser.
Nachfolgend ein typischer PoC, der von einer
POST-Anfrage mit dem Parameterinidausgeht:
<html>
<body>
<form action="http://localhost/elms/admin/manageemployee.php">
<input type="hidden" name="inid" value="1" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
Speichern Sie dies als csrf_inactivate_emp1.html.
Senden/hosten Sie diese Datei und bringen Sie einen authentifizierten Admin dazu, sie zu laden und den Button zu klicken.
Ein Angreifer kann einen authentifizierten Admin zwingen, beliebige Mitarbeiter zu deaktivieren, indem er ihn dazu verleitet, eine bösartige Seite zu besuchen.
Dies kann Folgendes verursachen:
Unbefugte Kontodeaktivierung, die die Verfügbarkeit von Benutzerkonten beeinträchtigt.
Betriebsstörungen (z. B. Deaktivierung von Mitarbeitern während kritischer Vorgänge).
Potenzieller Missbrauch in Kombination mit anderen Schwachstellen (z. B. Deaktivierung bestimmter Überwachungs- oder privilegierter Konten).
Der Angriff erfordert lediglich:
Dass der Admin eingeloggt ist, und
Dass der Admin eine bösartige URL/Seite besucht, die vom Angreifer kontrolliert wird (Phishing, eingebettetes Iframe, bösartiger Link etc.).
Da dies direkt in die Benutzerverwaltung im Adminportal eingreift, sollte dieses Problem als Hoher Schweregrad betrachtet werden.
CSRF-Schutztoken implementieren
Fügen Sie allen zustandsändernden Anfragen (z. B. Deaktivierung, Löschung, Aktualisierung) ein kryptographisch sicheres, unvorhersehbares CSRF-Token hinzu.
Betten Sie das Token als verstecktes Feld in Formulare ein.
Validieren Sie auf der Serverseite:
Vorhandensein des Tokens,
Korrektheit des Tokens und
Zuordnung des Tokens zur aktuellen Benutzersitzung.
Lehnen Sie die Anfrage ab, wenn das Token fehlt oder ungültig ist.
SameSite-Cookies verwenden
Setzen Sie Sitzungs-Cookies nach Möglichkeit mit SameSite=Lax oder vorzugsweise SameSite=Strict.
Dies verhindert, dass Cookies bei siteübergreifenden Anfragen automatisch gesendet werden, und reduziert das CSRF-Risiko.
Korrekte HTTP-Methoden erzwingen
Stellen Sie sicher, dass alle zustandsändernden Vorgänge (wie das Deaktivieren eines Mitarbeiters) POST (oder PUT/DELETE) anstelle von GET verwenden.
Akzeptieren Sie keine sensiblen Zustandsänderungen über GET-Parameter.
Origin-/Referer-Header validieren
Überprüfen Sie bei sensiblen Endpunkten den Origin- oder Referer-Header, um sicherzustellen, dass Anfragen von vertrauenswürdigen Domänen stammen.
Wenn der Header fehlt oder von einer nicht vertrauenswürdigen Quelle stammt, lehnen Sie die Anfrage ab.
UI/Workflow-Härtung
Fügen Sie bei sensiblen Aktionen (z. B. Deaktivierung von Benutzern mit Admin-Rollen) serverseitige Bestätigungs- oder erneute Authentifizierungsabläufe hinzu.
Wenn der Admin in der Anwendung eingeloggt ist und diese PoC-Seite besucht und das Formular absendet, wird Benutzer 1 deaktiviert.

Wirkung überprüfen
Kehren Sie zum Admin-Dashboard → Mitarbeiter verwalten zurück.
Sie sehen, dass Benutzer 1 nun als Inaktiv markiert ist.

Implementieren Sie ordnungsgemäße Autorisierungsprüfungen, um sicherzustellen, dass nur die vorgesehenen Rollen die Aktion ausführen können, selbst wenn ein CSRF-Versuch unternommen wird.
Sicherheitstests
Integrieren Sie CSRF-Prüfungen in regelmäßige Sicherheitstests (manuell und automatisiert).
Testen Sie diesen Endpunkt (und ähnliche) nach der Implementierung von Schutzmaßnahmen erneut, um zu überprüfen, dass der PoC nicht mehr funktioniert.