## https://sploitus.com/exploit?id=0717AD0E-26D9-54AF-A411-A3147FC2ED6F
# CVE-2019-9053 — Unauthenticated SQL Injection in CMS Made Simple
## Descripción
**CVE-2019-9053** es una vulnerabilidad de inyección SQL **time-based blind** que afecta a **CMS Made Simple** en versiones **≤ 2.2.9**. No requiere autenticación.
El parámetro vulnerable es `m1_idlist` en el módulo `News` (`moduleinterface.php`). Un atacante puede explotarlo para extraer el hash de la contraseña del administrador, su nombre de usuario, correo electrónico y el salt utilizado para el hash.
El esquema de almacenamiento de contraseñas es `MD5(salt + password)`, donde el salt tiene 8 bytes. Esto permite, una vez obtenidos el hash y el salt, intentar crackear la contraseña offline con herramientas como hashcat o John the Ripper.
**CVSS 3.1:** 7.5 (HIGH) — `AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N`
---
## Detalles Técnicos
| Campo | Valor |
|-------|-------|
| **CVE** | CVE-2019-9053 |
| **Producto** | CMS Made Simple |
| **Versiones afectadas** | ≤ 2.2.9 |
| **Tipo** | Time-based Blind SQL Injection (CWE-89) |
| **Autenticación** | No requerida |
| **Vector** | `moduleinterface.php?mact=News,m1_,default,0&m1_idlist=` |
| **Impacto** | Extracción de credenciales (usuario, email, password hash + salt) |
| **CVSS 3.1** | 7.5 HIGH |
| **Parche** | CMS Made Simple 2.2.10 |
---
## Exploit
### Autor original
**Daniele Scanu** — [@Certimeter Group](https://www.certimeter.com/)
El exploit original se encuentra en [Exploit-DB #46635](https://www.exploit-db.com/exploits/46635).
### Requisitos
- Python 2.7
- `requests`, `termcolor`
```bash
pip2 install requests termcolor
```
### Uso
```bash
# Extraer credenciales (salt, usuario, email, password hash)
python 46635.py -u http://target/cmsms
# Extraer credenciales e intentar crackear la contraseña con un wordlist
python 46635.py -u http://target/cmsms --crack -w /path/to/rockyou.txt
```
### Parámetros
| Parámetro | Descripción |
|-----------|-------------|
| `-u` / `--url` | URL base del CMS (ej. `http://10.10.10.100/cms`) |
| `-w` / `--wordlist` | Wordlist para crackear el password (opcional) |
| `-c` / `--crack` | Activar modo de cracking de contraseña |
### Funcionamiento
El exploit envía peticiones HTTP con payloads SQL que contienen `SLEEP()` para determinar caracter por caracter:
1. **Salt**: Extrae el salt de `cms_siteprefs` donde `sitepref_name = 'sitemask'`
2. **Username**: Extrae el username de `cms_users` donde `user_id = 1`
3. **Email**: Extrae el email del primer usuario administrador
4. **Password hash**: Extrae el hash de `cms_users`
5. **Cracking** (opcional): Prueba cada línea del wordlist contra `MD5(salt + password)`
### Ejemplo de salida
```
[+] Salt for password found: 5a599ef579066807
[+] Username found: jkr
[+] Email found: jkr@writeup.htb
[+] Password found: 62def4866937f08cc13bab43bb14e6f7
```
---
## Mitigación
- Actualizar CMS Made Simple a la versión **≥ 2.2.10**
- Si no es posible actualizar, deshabilitar el módulo News o restringir el acceso a `moduleinterface.php`
---
## Referencias
- [NVD — CVE-2019-9053](https://nvd.nist.gov/vuln/detail/CVE-2019-9053)
- [Exploit-DB #46635](https://www.exploit-db.com/exploits/46635)
- [CVE Mitre](https://vulners.com/cve/CVE-2019-9053)