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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/otakuliu/expression-sandbox-escape-simulation-lab
Static AnalysisVulnerability AnalysisExploitationWeb SecurityLearning & Education
GitHubotakuliu/expression-sandbox-escape-simulation-lab

Expression-Sandbox-Escape-Simulation-Lab

교육용 랩으로, 여러 취약한 샌드박스 버전을 통해 JavaScript 표현식 샌드박스 탈출 기법과 패치 진화를 시연하며, 페이로드 및 AST 분석을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🧪 Expression Sandbox Escape – Simulation Lab

JavaScript 표현식 샌드박스 탈출과 패치 진화를 시연하기 위한 최소화된 실험 환경입니다.

여러 버전의 sandbox를 통해 다음 과정을 구현합니다:

완전 탈출 가능 → this 패치 → destructuring 재패치

동시에 새로운 우회 방식을 남겨두어, 실제 세계에서 벌어지는 취약점과 패치의 공방 과정을 이해하는 데 도움을 줍니다.


📦 프로젝트 구조

root@kitploit:~
.
├── payload.js        # 각종 공격 payload
├── sandbox_v0.js     # 원본 취약 버전
├── sandbox_v1.js     # this 체인 수정
├── sandbox_v2.js     # destructuring 추가 수정

🎯 설계 목표

우리는 다음과 같은 현실을 시뮬레이션하고자 합니다:

  1. 보안 팀이 구멍 하나를 막는다
  2. 공격자는 다른 경로로 우회한다
  3. 다시 막는다
  4. 다시 우회당한다

끊임없이 반복됩니다.

이 프로젝트는 진짜 안전한 VM을 만드는 것이 목적이 아닙니다. 오히려 다음을 관찰하기 위한 것입니다:

"그럴듯해 보이는" 패치 하나하나가, 어떻게 다음 기법에 의해 뚫리는지.


🚀 실행 방법

root@kitploit:~
npm install vm2 acorn acorn-walk
node sandbox_vX.js

X를 0 / 1 / 2로 바꾸면 됩니다.


🧨 Payload 설명

payload.js에는 네 가지 접근 방식이 내장되어 있습니다:

이름기술
CVE-2025-68613 / thisthis를 통해 process 획득
CVE-2026-25049 / destructuring객체 구조 분해로 constructor 획득
Reflect.getReflect API 사용
Dynamic Reflect동적 속성 접근

🏚 sandbox_v0 – 무방비 시대

특징:

  • this 제한 없음
  • 구조 분해 검사 없음
  • AST 분석 없음

결과: 모든 payload가 통과합니다.

공격자는 명절 분위기로 즐거워합니다.


🔧 sandbox_v1 – this 수정

변경 사항:

  • "use strict" 강제
  • .call(undefined)

따라서:

root@kitploit:~
this === undefined

차단됨

  • CVE-2025-68613

여전히 가능

  • destructuring
  • Reflect

공격자는 고개를 끄덕이며 다른 길로 우회합니다.


🔒 sandbox_v2 – destructuring 수정

추가 사항:

  • AST 분석
  • ObjectPattern 전용 검사
  • 발견 시:
    • constructor
    • 또는 computed key → 실행 차단

차단됨

  • this
  • destructuring

여전히 가능

  • Reflect.get
  • Dynamic Reflect

🧠 이 실험이 정말로 말하고자 하는 것은?

블랙리스트 방식 패치는 일반적으로 다음과 같은 특성을 가집니다:

✔ 명확한 경로 수정 ✔ 비용이 낮음 ✔ 배포가 쉬움

하지만 동시에:

❌ 방어 범위가 제한적 ❌ 의미적으로 동등한 다른 접근 방식으로 쉽게 우회됨

이것이 바로 vm2과 유사한 샌드박스에서 역사적으로 탈출이 반복적으로 발생한 이유입니다.

도구 다운로드