네이버 카페 Stored XSS 취약점
네이버 카페 서비스에서는 글을 쓸 때 Smart Editor 2를 이용한다. 카페 서비스에서 이용하는 Smart Editor 2는 글꼴, 글자 크기 변경, 글자 색 변경 등 다양한 기능을 이용할 수 있고, 비교적 간단하다는 이유로 네이버의 다양한 서비스에 적용되었다.
하지만 Smart Editor 2는 사용자가 작성한 글을 HTML로 서버에 전송하기 때문에, 사용자가 HTML만 조작하면 XSS 공격에 취약할 수 있다는 단점이 있다. 당연히 블로그, 카페 등 Smart Editor 2 를 사용했던 모든 서비스도 XSS 공격에 취약했었으나 네이버의 꾸준한 보안 패치로 현재는 안정화 단계에 접어들었다.
'글쓰기에서의 Logical bug를 이용한 Stored XSS' 취약점은 XSS 보안패치의 논리적인 결함을 이용한 취약점이다. Back-end service의 코드를 보지 못해 왜 이렇게 되는지는 알 수 없지만, 이미지의 src를 처리하는 과정에서 Logical한 버그가 생겨 XSS 취약점까지 연계되는 것이라고 추측한다. img의 src 속성을 아래의 PoC 로 바꾸어 글을 쓰면 Stored XSS를 유발할 수 있다. img의 src 속성이 중복으로 처리되면서 src 속성에서 escape하여 다른 속성을 지정할 수 있게 된다. src 속성에서 escape하여 event 관련 속성에 자바스크립트 코드를 삽입하면 XSS 취약점이 발생한다.
[*] src attr escape PoC : https://storep-phinf.pstatic.net/ogq_58146d6d0ab0a/original_6.png">
[*] XSS PoC : https://storep-phinf.pstatic.net/ogq_58146d6d0ab0a/original_6.png?type=p50_5"0"/onerror="prompt(document.domain,/xss/)">
아래는 취약점 시연
'리얼월드 (Real world)' 카테고리의 다른 글
네이버 오디오클립(AudioClip) SQL Injection 취약점 (1) | 2020.06.11 |
---|---|
네이버 카페 분석 (0) | 2020.05.29 |
메가스터디 SQL Injection 취약점 (0) | 2020.03.05 |
컴퓨터공학과 새내기가 수강신청하는 법 (0) | 2020.02.25 |
디미고 사이트 취약점 발견ㅋㅋ (0) | 2018.02.13 |