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-2026-60137 — wpsqli estrattore SQLi completo + dump per CVE-2026-60137 | Kitploit
Strumenti/GitHubGitHub/adarshthakur14777-cyber/cve-2026-60137
Attacchi alle PasswordAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniSicurezza WebPenetration TestingSicurezza dei Database

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
GitHub
adarshthakur14777-cyber/cve-2026-60137

CVE-2026-60137

wpsqli estrattore SQLi completo + dump per CVE-2026-60137

Vedi Repository
51 mese faNon ancora revisionato

wpsqli - Estrattore SQLi per WordPress (CVE-2026-60137)

Uno strumento veloce e guidato da menu per l'estrazione di database che sfrutta la vulnerabilità di SQL injection author__not_in nel core di WordPress. Questo strumento si concentra esclusivamente sull'enumerazione e sul dump del database, sfruttando la confusione delle route batch REST (CVE-2026-63030) per raggiungere il sink SQLi senza autenticazione.


Sommario

  • Panoramica
  • Catena di vulnerabilità
  • Versioni interessate
  • Funzionalità
  • Installazione
  • Utilizzo
  • Opzioni del menu
  • Modalità di estrazione
  • Prestazioni
  • Disclaimer legale

Panoramica

wpsqli è uno strumento in puro Python progettato per sfruttare una vulnerabilità concatenata nel core di WordPress che consente un'iniezione SQL non autenticata nel database. Aggira la validazione della REST API di WordPress tramite un bug di confusione delle route batch, portando un payload stringa grezzo direttamente al sink SQL di WP_Query.

Questo strumento è pensato per velocità e flessibilità: tenta automaticamente l'estrazione in-band basata su UNION (istantanea), ripiega sull'estrazione boolean-blind parallela a 8 thread e infine sull'estrazione time-based sequenziale, se necessario.


Catena di vulnerabilità

Questo strumento combina due vulnerabilità indipendenti per ottenere un'estrazione del database senza autenticazione:

Bug A — Iniezione SQL author__not_in (CVE-2026-60137)

Posizione: wp-includes/class-wp-query.php, WP_Query::get_posts()

Il parametro author__not_in applica la sanitizzazione absint() solo se l'input è un array. Se viene passata una stringa, il controllo is_array() viene saltato, la stringa attraversa implode() senza modifiche e viene concatenata grezza nella clausola SQL $where.

root@kitploit:~
// Line 2404: guard only fires for ARRAYS
if ( is_array( $query_vars['author__not_in'] ) ) {
    $query_vars['author__not_in'] = array_unique( array_map( 'absint', $query_vars['author__not_in'] ) );
    sort( $query_vars['author__not_in'] );
}
// Line 2408: string passes straight through
$author__not_in = implode( ',', (array) $query_vars['author__not_in'] );
// Line 2409: raw interpolation
$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";

Bug B — Confusione delle route batch REST (CVE-2026-63030)

L'endpoint posts della REST API mappa author_exclude su author__not_in ma lo dichiara come type => 'array' di interi, quindi il core converte/rifiuta una stringa. Il Bug B fa passare la stringa oltre la validazione abusando di un bug di desincronizzazione nell'endpoint batch REST (/wp-json/batch/v1). Iniettando un primer di percorso malformato che wp_parse_url() rifiuta, un WP_Error viene inserito nella lista delle richieste batch, desincronizzando $matches da $validation. Questo consente a una sotto-richiesta successiva di essere smistata verso l'handler sbagliato senza validazione dei parametri.


Versioni interessate

Avvertenza: Il sink SQLi viene raggiunto solo quando non è in uso una cache degli oggetti persistente (Redis/Memcached).


Funzionalità

  • Nessuna dipendenza: Solo libreria standard di Python. Nessun pip install richiesto.
  • Estrazione a tre livelli:
    • Basata su UNION: Crea una riga wp_posts fittizia per estrarre intere stringhe in una singola richiesta HTTP (istantanea).
    • Boolean-blind (parallela): Se UNION è bloccata dalla cache degli oggetti, usa 8 thread paralleli con ricerca binaria per estrarre ~7 richieste per carattere.
    • Time-based (sequenziale): Fallback se l'oracolo booleano non restituisce righe.
  • Enumerazione completa: Elenca database, tabelle e colonne.
  • Dump di tabelle: Dump di singole tabelle, di tutte le tabelle in un DB o dump nucleare completo su file di testo con timestamp.
  • Interruzione pulita: Ctrl+C durante l'estrazione ferma la query corrente e restituisce risultati parziali senza far crashare la sessione.
  • Persistenza della sessione: Connettiti una volta ed esegui più query tramite il menu interattivo.
  • Sanitizzazione URL: Rimuove automaticamente percorsi/query dall'input host per prevenire la duplicazione degli endpoint.
  • Output pronto per il cracking: I dump utente includono il formato ID|user_login|user_pass con hash bcrypt pronti per hashcat -m 35500.

Installazione

Nessuna installazione richiesta. Basta scaricare ed eseguire:

root@kitploit:~
# Clone the repository
git clone https://github.com/AdarshThakur14777-cyber/CVE-2026-60137.git
# Navigate to directory
cd CVE-2026-60137

# Run
python main.py

Requisiti:

  • Python 3.8+
  • Nessun pacchetto esterno necessario (solo stdlib)

Utilizzo

Avvia il menu interattivo:

root@kitploit:~
python main.py

Sessione di esempio

root@kitploit:~
============================================================
  WP SQLi Extractor v3 (CVE-2026-60137)
============================================================
------------------------------------------------------------
  CONNECTION
   0. Connect / Change target
   1. Check target (version + vuln confirm)
------------------------------------------------------------
  FINGERPRINTING
   2. MySQL version (@@version)
   3. Current database name
   4. Current DB user
   5. WordPress table prefix
   6. Dump wp_users (ID, login, pass hash)
   7. Custom SQL query
   8. Extract all fingerprints (2+3+4+5)
------------------------------------------------------------
  ENUMERATION
   9. List all databases
  10. List all tables (current DB)
  11. List columns of a table
------------------------------------------------------------
  DUMPING
  12. Dump a specific table
  13. Dump all tables (current DB)
  14. Full dump to file (all tables + all rows)
------------------------------------------------------------
  15. Exit
============================================================

Choice: 0
Target (https://example.com): https://target.com
Skip TLS verify? (y/N):
Sleep delay for time-based (default 3):

[*] Connecting to https://target.com ...
[+] Batch endpoint: https://target.com/wp-json/batch/v1
[*] WordPress version: 6.9.4 VULNERABLE
[*] Testing UNION-based extraction ...
[!] UNION not available — trying boolean blind (8 parallel threads) ...
[+] Boolean-blind mode active (8 threads, ~7 reqs/char)
[+] Time-based also works (0.69s vs 3.78s)

Opzioni del menu

Connessione

OpzioneDescrizione
0Connettiti a un target (sanitizza gli URL automaticamente)
1Verifica la vulnerabilità e la modalità di estrazione attiva

Fingerprinting

Enumerazione

OpzioneDescrizione
9Elenca tutti i database sul server MySQL
10Elenca tutte le tabelle nel database corrente o specificato
11Elenca tutti i nomi di colonna per una tabella specifica

Dump

OpzioneDescrizione
12Dump di una singola tabella (con limite di righe opzionale e salvataggio su file)
13Dump di tutte le tabelle nel database corrente
14Dump nucleare completo — tutte le tabelle + tutte le righe su file con timestamp

Modalità di estrazione

Lo strumento tenta automaticamente tre modalità di estrazione in ordine di velocità:

1. Basata su UNION (istantanea)

Crea una riga wp_posts fittizia con il valore estratto codificato in esadecimale nella colonna post_title (racchiuso tra i marcatori ||..||). La REST API lo riflette nella risposta — l'intera stringa in una singola richiesta HTTP.

  • 1 richiesta per query
  • Funziona solo quando non è attiva una cache degli oggetti persistente
  • Usa CONCAT(0x7c7c, HEX(CAST((<expr>) AS CHAR)), 0x7c7c) per codificare il risultato

2. Boolean-blind (parallela)

Se UNION non è disponibile, usa 8 thread paralleli con ricerca binaria per estrarre ogni carattere. L'oracolo booleano verifica se la AND (condition) iniettata restituisce righe.

  • ~7 richieste per carattere (parallelizzate su 8 thread)
  • Ricerca binaria sul range ASCII 32-126
  • Pre-scansiona la lunghezza della stringa tramite ricerca binaria prima dell'estrazione
  • Avanzamento mostrato come caratteri completati

3. Time-based (sequenziale)

Fallback se l'oracolo booleano non restituisce righe (es. sito con 0 post pubblicati). Usa IF(condition, SLEEP(N), 0) per codificare la verità nella latenza della risposta.

  • ~7 × secondi di sleep_delay per carattere (sequenziale)
  • Modalità più lenta ma funziona su database vuoti

Prestazioni

Tempi di esempio (Boolean, 8 thread)


Disclaimer legale

Questo strumento è progettato esclusivamente per test di sicurezza autorizzati e scopi educativi. Devi utilizzare questo strumento solo su sistemi di tua proprietà o per i quali hai un'esplicita autorizzazione scritta a effettuare test. L'accesso non autorizzato a sistemi informatici è illegale.

Gli autori e i contributori di questo strumento non sono responsabili per qualsiasi uso improprio o danno causato da questo software. Usalo a tuo rischio e pericolo


Crediti

  • Catena di vulnerabilità scoperta da Adam Kues (Assetnote / Searchlight Cyber)
  • Tecnica UNION del post fittizio: sergiointel/wp2shell-poc (originatore)
  • Implementazione adattata da: Icex0/wp2shell-poc
  • Tecnica di rilevamento della confusione delle route: Hadrian / Icex0

Licenza

Questo strumento è fornito esclusivamente per scopi educativi e di test autorizzati.

Scarica lo strumento
Intervallo di versioniStato
6.8.0 – 6.8.5Bug SQLi presente, ma catena NON raggiungibile (confusione batch introdotta in 6.9.0)
6.9.0 – 6.9.4VULNERABILE — catena completa senza autenticazione
7.0.0 – 7.0.1VULNERABILE — catena completa senza autenticazione
6.8.6Corretto (SQLi)
6.9.5Corretto
7.0.2Corretto
7.1-beta2+Corretto
OpzioneDescrizione
2Estrai la versione di MySQL (SELECT @@version)
3Estrai il nome del database corrente (SELECT DATABASE())
4Estrai l'utente DB corrente (SELECT CURRENT_USER())
5Estrai il prefisso delle tabelle di WordPress
6Dump della tabella wp_users (ID, login, hash della password)
7Esegui una query SQL personalizzata
8Esegui tutti i fingerprint (opzioni 2-5) in sequenza
ModalitàRichieste per queryVelocitàQuando viene usata
UNION1IstantaneaNessuna cache degli oggetti, conteggio delle colonne corrispondente
Boolean (8 thread)~7 × string_length / 8VeloceUNION bloccata, ci sono righe
Time-based~7 × sleep × string_lengthLentaNessuna riga per l'oracolo booleano
EstrazioneCaratteriRichiesteTempo
Versione MySQL~20~140~15s
Nome database~15~105~12s
Utente DB~25~175~20s
Prefisso tabella~5~35~5s
Riga wp_users (200 caratteri)200~1400~2min