웹 해킹의 기법에 대해 검색하다 보면 XSS라는 공격 기법이 있다는 것을 알게된다. 웹 취약점을 발표하는 OWASP에서도 거의 매법 언급될 정도로 널리 알려진 웹해킹 기법이다.
웹의 특징을 사용한 XSS라는 공격기법은 어떤것인지 알아보자.
XSS(Cross-Site-Script)란?
- Cross-Site-Script라고도 불리는 XSS는 웹 해킹 공격 기법중 하나이다.
- 클라이언트와 서버간의 통신을 스크립트를 통해 조작하는 것을 의미한다.
- 따라서 웹 클라이언트(크롬, 익스플로러, 파이어 폭스 등..)의 특정을 이용한 공격이라 할 수 있다.
- 웹 클라이언트는 request/response 응답값을 통해 통신을 주고받는데, 공격자가 작성한 클라이언트 언어(HTML,JSP,PHP)를 사용해 공격을 한다.
- 사용자가 서버로 부터 response값을 받을때 웹 클라이언트가 코드를 읽으며 악성코드가 실행되는 원리로 공격이 이루어 진다.
- 따라서 사용자가 접근하기 때문에 공격이 일어나므로 사용자를 공격하는 기법이라 할 수 있다.
- 공격자는 script를 작성해 공격을 시도하며 주로 사용자의 세션ID, ID/PW값 등을 탈취할 때 사용한다.
- XSS는 두가지 기법으로 나뉜다.
1. Stored XSS
- 게시판, 댓글, 기타 저장 가능한 공간에 악성스크립트를 삽입해 영구적으로 저장하는 방법
- 웹 서버에 악성코드를 저장해 지속적으로 XSS 공격을 일으킨다는 특징이다.
- 저장된 악성 스크립트는 웹클라이언트에 의해 실행되며 해당 악성코드를 읽을 때 마다 공격이 계속해서 일어난다.
- 게시글 등 악성 코드는 불특정 다수에게 공격이 일어나므로 가장 위험한 공격 유형이라 할 수 있다.
2. Reflected XSS
- 사용자 입력값이 서버를 통해 다시 사용자에게 반사 되는 공격 기법
- 주로 URL을 통한 공격이 일어난다.
- 피싱 등을 통해 사용자가 특정 URL에 접속을 유도해 공격을 수행한다.
- "http://www.test.com/?악성코드" 방식으로 수행이 되며 파라미터 값이 들어가는 곳 대신 악성코드를 삽입해서 공격한다.
- 공격 후 값이 반드시 '반사'되어야 공격이 이루어지는데, 반사되는 값을 보여주는 형태가 있어야 공격이 이루어진다.
- 그러나 최근엔 reflected XSS 공격 방어가 잘 되어있어서 성공하기 힘든 공격 이기도 하다.
XSS 활용 공격
- 위와 같은 특징을 활용해 XSS를 활용해 다음과 같은 공격을 수행할 수 있다.
1. 사용자의 쿠키/세션 ID 탈취
2. 사용자 계정/개인정보 탈취
3. 악성 스크립트 실행/악성 코드 다운로드
4. DoS 공격
5. Keylogger : 사용자 입력값 가로채기
'Security > About Hacking' 카테고리의 다른 글
PHP로 제작한 웹쉘 : 사용한 윈도우 실행기 (0) | 2020.10.13 |
---|---|
[PHP 서버]디렉터리 리스팅 설정 (0) | 2020.09.20 |
SQL Injection 이란? (0) | 2020.09.06 |
CSRF란 무엇인가? 그리고 XSS와의 차이점은? (0) | 2020.08.15 |
관리자 페이지 노출 취약점 (0) | 2020.07.14 |