XSS 이란(2)?
1. XSS(2)
※ 주의 사항 :
1. 교육 목적으로만 이용 해주세요.
2. 무단 침입, 데이터 유출, 개인 정보 침해 등 불법적인 활동은 심각한 법적 결과를 초래할 수 있습니다.
3. 개인적인 테스트 환경을 구축해서 실습하시길 바랍니다.
1.1 개요
✔XSS 간단 요약
xss : 클라이언트 측 브라우저에 발생하는 코드를 조작 및 변경하여, 악성 스크립트를 실행시키고 정보를 탈취하는 공격 기법이다.
XSS 공격은 일반적으로 세 가지 유형으로 나뉜다 : Stored XSS
, Reflected XSS
, DOM-based XSS
.
Stored XSS : 서버에 임의의 스크립트를 삽입하여, 그 스크립트가 담긴 페이지를 생성한다. 이후 이 페이지에 접근하는 모든 클라이언트의 정보를 가져오는 방법이다.
Reflected XSS : URL의 파라미터에 임의의 스크립트를 삽입하여, 그 링크를 클릭한 클라이언트가 그 스크립트를 실행할 수 있도록 하는 방법이다. 일반적으로 파라미터 값이 HTTP 응답에 그대로 출력 된다.
1.2 DOM Based XSS
DOM의 개념
DOM(document object model) 는 웹 페이지를 동적으로 조작하고 변경할 수 있는 기술이다.
이를 통해 JavaScript와 같은 프로그래밍 언어로 HTML 요소를 동적으로 변경할 수 있다.
웹 페이지에서 보여지는 시각적인 이미지는 모두 정적이고, HTML 요소로 이루어져 있다.
DOM은 클릭했을 때 임의의 동작을 하게 만들고, 검색 창에 텍스트를 작성했을 때 목록이 나타나는 등
많은 요소들이 동작할 수 있도록 도와준다.
DOM Based XSS 의 개념 및 원리
DOM Based XSS 는 웹페이지의 DOM을 이용하여 스크립트를 조작할 수 있게 하는 공격 기법이다.
예를 들어, 이용자가 검색 창에 텍스트를 입력하면 검색한 글이 페이지 화면에 출력이 된다고 가정해 보자.
이러한 경우, 악의적인 사용자는 검색어에 임의의 스크립트를 삽입하여 클라이언트에게 영향을 미칠 수 있다.
▶Reflected XSS와 같은 점
URL의 파라미터에 임의의 스크립트를 삽입하여, 그 링크를 클릭한 클라이언트가 그 스크립트를 실행할 수 있도록 하는 방법이다.
▶Reflected XSS와 다른 점
DOM Based XSS는 파라미터가 HTTP 응답에 그대로 출력 되는 것이 아니다. 대신, 클라이언트 측에서 동적으로 스크립트에 의해 페 이지에 작성되는 것이다.
▶ DOM Based XSS 찾기
즉, DOM Based XSS 는 특정 동작에 출력하므로 발견하기 어려울 수 있다.
하지만 분명한 것은 XSS 공격이 발생하려면 스크립트가 삽입되어야만 할 수 있다는 사실이다.
이를 통해 공격자들은 주로 document.write
나 innerHTML
등의 메서드를 이용한다. 따라서 이러한 메서드를 이용하는 코드를 주의 깊게 점검하면 취약한 코드를 발견할 수 있다.
댓글남기기