
CVE-2023-38545에 대한 개념 증명 익스플로잇으로, curl 힙 버퍼 오버플로입니다. 취약점을 트리거하고 시스템 노출을 결정하기 위한 SOCKS5 프록시 및 HTTP 서버를 포함합니다.
이 저장소에는 CVE-2023-38545 취약점에 대한 시스템 테스트를 위해 설계된 개념 증명(PoC)이 포함되어 있습니다. 이 취약점은 curl 유틸리티, 특히 7.69.0과 8.3.1 사이의 버전에 영향을 미치며 HTTP 리디렉션 처리와 관련이 있습니다.
필요한 소프트웨어: curl
PoC는 두 가지 주요 구성 요소로 이루어져 있습니다:
사용할 수 있는 socks5 프록시가 이미 있다면 이 단계는 선택 사항입니다.
setup_socks5.sh 실행
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
이 스크립트는 필요한 종속성을 설치하고 1080 포트에 SOCKS5 프록시 서버를 설정합니다.
HTTP 서버를 시작하려면 다음 명령을 실행하세요:
$ python3 server.py
디버그 로깅을 사용하여 서버를 실행할 수도 있습니다:
$ python3 server.py --debug
성공적으로 실행되면 HTTP 서버는 8000 포트에서 수신 대기합니다.
먼저 스크립트를 실행 가능하게 만드세요:
$ chmod +x cve202338545.sh
스크립트는 --socks5-ip로 socks5 프록시 주소를, --http-ip로 http 주소를 받도록 구성할 수 있으며 --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
이렇게 하면 익스플로잇이 시작되며, 시스템이 취약한지, 취약하지 않은지, 또는 테스트 결과가 불확실한지 여부를 나타내는 출력이 표시됩니다.
4가지 응답 상태가 있습니다:
이 단계는 1단계에서 setup_socks5.sh를 사용한 경우에만 필요합니다.
SOCKS5 프록시 서버를 정리하려면 다음 명령을 실행하세요:
$ ./cleanup.sh