🇰🇷 한글 설명
Python의 SimpleHTTPServer에서 list_directory 함수가 Content-Type HTTP 헤더에 charset 파라미터를 포함하지 않아 UTF-7 인코딩을 통한 크로스사이트 스크립팅(XSS) 공격이 가능합니다. Internet Explorer 7이 UTF-7을 잘못 해석하면서 원격 공격자가 악성 스크립트를 실행할 수 있습니다.
💡 쉬운 설명
웹 서버가 파일 목록을 보여줄 때 문자 인코딩 정보를 누락하면 오래된 IE 7 브라우저가 혼동해서 악성 코드를 실행할 수 있습니다. 기본 웹 서버를 사용하는 경우 주의가 필요합니다.
🇺🇸 원문 (English)
The list_directory function in Lib/SimpleHTTPServer.py in SimpleHTTPServer in Python before 2.5.6c1, 2.6.x before 2.6.7 rc2, and 2.7.x before 2.7.2 does not place a charset parameter in the Content-Type HTTP header, which makes it easier for remote attackers to conduct cross-site scripting (XSS) attacks against Internet Explorer 7 via UTF-7 encoding.
📍 영향받는 시스템
Python 2.5.6c1 이전, 2.6.7rc2 이전, 2.7.2 이전의 SimpleHTTPServer 모듈
⚔️ 공격 벡터
UTF-7 인코딩된 JavaScript 페이로드를 파일 목록 응답에 포함시켜 IE7에서 XSS 공격 실행
🛡️ 대응 방법
Python을 2.5.6c1 이상, 2.6.7rc2 이상, 또는 2.7.2 이상으로 업그레이드
🔧 검증 코드
Python 버전이 2.5.6c1, 2.6.7rc2, 2.7.2 이상이 아니면 취약함 - 패치된 버전으로 업그레이드 필요
python --version 2>&1 | grep -E '2\.[567]\.' && echo 'Potentially vulnerable'