
Este repositório contém um script em Python para automatizar o processo de teste de uma vulnerabilidade conhecida como Text4Shell, referenciada pelo ID CVE: CVE-2022-42889.
Este repositório contém um script em Python para automatizar o processo de teste de uma vulnerabilidade conhecida como Text4Shell, referenciada pelo CVE id: CVE-2022-42889.
O Text4Shell é uma vulnerabilidade crítica que afeta uma ampla gama de sistemas. A vulnerabilidade reside na forma como esses sistemas fazem o parsing de strings de texto e permite a execução de código arbitrário ou ataques SSRF. A vulnerabilidade é explorada por meio de strings maliciosamente elaboradas, nas quais ou código JavaScript é executado (levando à Execução Remota de Código (RCE)) ou URLs são buscadas (levando a Server-Side Request Forgery (SSRF)).
De Tarlogic:
Requisitos de exploração:
A aplicação aceita entrada controlada pelo usuário que é posteriormente processada por um dos seguintes métodos do componente afetado:
Versões do Java iguais ou superiores a 15 não seriam suscetíveis à execução remota de código, pois o mecanismo Nashorn está desabilitado e o prefixo “script” não estaria disponível. No entanto, outros ataques via prefixos “url” e “dns” seriam possíveis.
Este script em Python ajuda a testar a presença da vulnerabilidade Text4Shell em um sistema. O escopo deste script inclui: testes dos prefixos script e url.
O script tem dois modos de operação: RCE e SSRF, controlados pelo argumento de linha de comando ou . Ele constrói uma URL incorporando uma string maliciosamente elaborada com base no modo selecionado e faz uma requisição GET para a URL.
-m--modeNo modo RCE, o script cria uma string maliciosamente elaborada que tenta executar um comando JavaScript. O comando a ser executado é passado como um argumento de linha de comando usando -c ou --command.
python text4shell.py -u 'http://example.com/search?query=' -c 'your_command' -m 'rce'
No modo SSRF, o script cria uma string maliciosamente elaborada que inclui um comando de busca de URL.
python text4shell.py -u 'http://example.com/search?query=' -m 'ssrf' -s 'http://example.com/resource'
O script faz uma requisição GET para a URL construída e imprime o código de status e o corpo da resposta HTTP.