XSS(Cross Site Scripting)
: 사회공학기법의 일종으로 사용자를 유인하여 사용자의 중요 정보를 가로채는 기법
이미 사전에 알고 있는 사람인 척 시스템/사람에게 접근하여 시스템/사람이 가진 정보를 가로채는 행위
일단 공격자는 사용자가 글을 남길 수 있는 게시판 같은 공간에 스크립트 형태를 남긴다. 또 글 제목은 관리자가 접근해서 해당 내용을 클릭하도록 유도하려고 문의 글처럼 설정한다. 글 내용에는 해당 글을 클릭한 사용자의 쿠키값을 팝업으로 띄워주도록 스크립트를 작성한다. 관리자는 그 글에 접근하기 위해 관리자 계정으로 로그인을 시도하고 글을 클릭하면 그 세션값이 팝업 창으로 뜬다. 공격자는 그 세션값을 일반 사용자와 바꾸어 다른 사람인 척 접근할 수 있다.
(1) XSS 태그 종류
Script 태그
특정 파라미터(my comment)에 취약점이 존재할 경우 그 곳에 스크립트 링크를 걸어서 게시판/메일에 첨부하여 사용자에게 클릭을 유도한다. 사이트가 실행되면 사용자 정보를 빼오거나 악성코드에 감염되게 한다.
iframe 태그
iframe source 뒤의 URL에 사용자를 무조건 접속시키는 태그로, 사용자가 많이 접근하는 사이트 소스에 태그를 삽입하여 악성코드에 감염시킨다.
object 태그
홈페이지에 플래쉬, 동영상을 지원할 수 있도록 하는 태그로 object 태그와 ITS 프로토콜 핸들러(대표적 키워드: @MSITStore)에 의한 .chm(컴파일 된 HTML 도움말) 처리 시의 취약점을 악용한다. 예를 들어서 c밑에 nosuchfile이 없는 경우 뒤의 URL을 실행하라는 코드를 통해 사용자 컴퓨터를 악성코드에 감염시킨다.
(2) 웹 브라우저 주소 변조(Spoofing)
마이크로소프트 홈페이지에 접속했을 때 팝업창이 뜨게 함-> 신뢰된 웹사이트(마이크로소프트)에서 제공한 팝업창이라고 인식하게 만든 후, 사용자 정보 탈취가 가능하다.
(3) 인코딩 기법
원본: test라는 문자열을 가진 팝업창이 뜸
인코딩: String.fromCharCode()을 사용하여 일반 문자열을 10진수로 표기함(test -> 116 101 115 116)
즉 평문이 아니라 관리자가 쉽게 인지할 수 없게 코드를 삽입하여 alert 창에서 사용자의 정보를 빼내오는 기법
(4) Obfuscated 기법 (난해하게 만든 코드)
인코딩과 같이 일반적으로 쓰는 평문 대신 보이는 것을 꼬아서 난해하게 보이게 하는 방법.
스크립트 태그를 사용해서 특정 URL을 난해하게 만든 다음, 해당 URL로 접속하게 하여 사용자의 컴퓨터를 악성코드에 감염시킨다.
(5) DIV 기법
그림 등을 페이지 특정 위치에 삽입하는 태그. 홈페이지에 특정 그림을 넣어 홈페이지가 변조된 것처럼 보이게 한다.
(6) XSS 검색 사이트: http://xssed.cm/search?key=사이트
특정 사이트를 이용하면서 발견되었던 XSS 취약점을 공유하는 사이트
예시: naver.com 입력-> http://xssed.com/search?key=naver.com
(7) XSS 대책
replace()를 통해 <는 <, >는 >으로 대체한다. 하지만 <p>, <br> 등은 사용해도 무방하므로 예외처리한다.
'ETC. > WEB' 카테고리의 다른 글
Nmap Port Scanning with Wireshark (0) | 2021.03.29 |
---|---|
파일 다운로드 취약점 (0) | 2019.11.12 |
파일 업로드 취약점 (0) | 2019.11.12 |