
Proof-of-Concept (POC) of a simple firewall in Python designed to mitigate the Spring4Shell (CVE-2022-22965) RCE attack by inspecting and blocking malicious request bodies.
이 프로젝트는 Python으로 구현된 개념 증명(POC)으로, 간단하지만 효과적인 방화벽입니다. 들어오는 POST 요청을 검사하여 Spring4Shell (CVE-2022-22965) 원격 코드 실행(RCE) 취약점과 관련된 특정 페이로드 패턴을 탐지 및 차단하도록 설계된 HTTP 서버 역할을 합니다.
방화벽은 Python 내장 http.server 모듈을 활용합니다. 핵심 로직은 ServerHandler 클래스의 do_POST 메서드에 있습니다.
POST 요청을 가로챕니다.class.module.classLoader을 검색합니다. 이 문자열은 Spring4Shell 익스플로잇의 기본 구성 요소이며 공격자가 난독화하기 어렵습니다.403 Forbidden HTTP 응답을 보내 요청을 차단합니다.200 OK 응답으로 정상 처리됩니다.다른 완화 전략은 헤더나 특정 URL 경로에 초점을 맞출 수 있지만, 이 방법은 견고성 때문에 선택되었습니다:
tomcatwar.jsp와 같은 파일 이름이나 사용자 정의 헤더 이름 같은 취약한 지표에 의존하지 않으며, 공격자가 쉽게 변경할 수 없습니다.방화벽을 실행하려면 메인 스크립트 firewall_server.py를 사용하세요:
python firewall_server.py
서버가 localhost:8000에서 시작됩니다.
그런 다음 제공된 Test_Requester.py 스크립트를 사용하여 악의적인 요청을 시뮬레이션하고 차단되는지 확인할 수 있습니다.
이것은 개념 증명(POC)으로, 교육 및 시연 목적으로만 제공됩니다. 프로덕션 준비가 된 방화벽 솔루션이 아닙니다.