
🔴 Apache Tomcat 예제 웹 애플리케이션용 고급 XSS(Cross-Site Scripting) 스캐너 및 익스플로잇
CVE-2026-50229은 Apache Tomcat에 포함된 번들 예제 웹 애플리케이션에서 발견된 XSS(Cross-Site Scripting) 취약점입니다. 이 결함은 webapps/examples/jsp/num/ 내의 numguess.jsp 데모 페이지에 존재하며, 필터링되지 않은 HTTP 요청 매개변수가 적절한 무력화(sanitization)나 이스케이프 처리 없이 피해자의 브라우저에 반사됩니다.
이 저장소는 여러 Tomcat 버전에서 이 취약점을 자동으로 탐지, 익스플로잇, 문서화하는 Python으로 작성된 프로페셔널 등급 PoC(Proof of Concept) 스캐너를 포함합니다.
⚠️ 경고: 이 도구는 교육 목적 및 승인된 보안 테스트 전용으로 제작되었습니다. 오용 시 관련 법률을 위반할 수 있습니다. 테스트 전에 항상 명시적 허가를 받으십시오.
이 취약점은 JSP 페이지의 와일드카드 속성 매핑에서 비롯됩니다:
<jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/>
<jsp:setProperty name="numguess" property="*"/>
---
property="*"는 hint 필드를 포함한 모든 요청 파라미터를 빈(bean) 속성에 매핑하며, 이 hint 필드는 이후 이스케이프되지 않은 채로 반사됩니다:
Good guess, but nope. Try <b><%= numguess.getHint() %></b>.
| 필드 | 값 |
|---|
| CVE ID | CVE-2026-50229 |
| CWE | CWE-79 (웹 페이지 생성 중 입력 무력화 불량) |
| CVSS 점수 | 3.1 (낮음) |
| 공격 벡터 | 네트워크 |
| 공격 복잡도 | 낮음 |
| 필요 권한 | 없음 |
| 사용자 상호작용 | 필요 |
| 범위 | 변경됨 |
| 기밀성 | 낮음 |
| 무결성 | 낮음 |
| 가용성 | 없음 |