
Exploit de prova de conceito para CVE-2023-38545 no curl. Inclui proxy SOCKS5 e servidor HTTP para testar sistemas quanto à vulnerabilidade de estouro de buffer no heap no tratamento de redirecionamento HTTP.
Este repositório contém uma Prova de Conceito (PoC) projetada para testar sistemas para a vulnerabilidade CVE-2023-38545. A vulnerabilidade afeta o utilitário curl, especificamente versões entre 7.69.0 e 8.3.1, e está relacionada ao tratamento de redirecionamentos HTTP.
Software Necessário: curl
A PoC consiste em dois componentes principais:
Este passo é opcional se você já tiver um proxy socks5 que possa usar.
Execute setup_socks5.sh
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
Isso instalará as dependências necessárias e configurará o servidor proxy SOCKS5 na porta 1080.
Execute o seguinte comando para iniciar o servidor HTTP:
$ python3 server.py
Você também pode executar o servidor com log de depuração
$ python3 server.py --debug
Após a execução bem-sucedida, o servidor HTTP estará escutando na porta 8000.
Primeiro, torne o script executável:
$ chmod +x cve202338545.sh
O script pode ser configurado para aceitar um endereço de proxy socks5 com --socks5-ip e um endereço http com --http-ip e pode exibir logs de depuração com --DEBUG
$ ./cve202338545.sh --socks5-ip <ip> --http-ip <ip> --DEBUG # specify both proxy and http server
$ ./cve202338545.sh --socks5-ip <ip> # specify only proxy server
$ ./cve202338545.sh --http-ip <ip> # specify only http server
$ ./cve202338545.sh # both proxy and http server will default to localhost
$ ./cve202338545.sh --DEBUG # both proxy and http server will default to localhost with debug on
Isso iniciará a exploração, e você verá uma saída indicando se o sistema está vulnerável, não vulnerável ou se o teste foi inconclusivo.
Existem 4 estados de resposta:
Este passo é necessário apenas se você usou setup_socks5.sh do passo 1.
Para limpar o servidor proxy SOCKS5, execute o seguinte comando:
$ ./cleanup.sh