초록
크로스사이트 스크립팅은 웹 애플리케이션의 취약점으로 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 비정상적인 기능을 자동으로 수행하게 하거나 할 수 있다. 크로스사이트 스크립팅(XSS) 공격유형은 한 번의 HTTP 요청과 응답에서 행해지는 XSS인 반사 XSS(reflect XSS)와 페이로드를 전송한 뒤 다수의 피해자가 해당 페이지에 접속하면 XSS 공격에 노출되는 저장 XSS(Stored XSS)로 나눌 수 있다. 그리고 크로스사이트 스크립팅 공격에 대한 방어로 사용자 입력하는 데이터에 대한 입력 값 검증, HTML 인코딩 과정에서의 출력 값에 대한 검증, 사용자가 악의적 코드를 웹 어플리케이션에 삽입하기 위한 시도를 막기 위해 위험 가능성 삽입지점 제거를 제시하였다. 본 논문에서는 이 두 가지 방법에 대한 공격방법과 절차를 제시하고 모의해킹을 수행하였다. 이를 통해 크로스사이트 스크립팅 공격에 대한 이해가 가능하고 대응책을 통해 공격에 대비할 수 있도록 하였다.
Cross Site Scripting enables hackers to steal other user's information (such as cookie, session etc.) or to do abnormal functions automatically using vulnerability of web application. This attack patterns of Cross Site Scripting(XSS) can be divided into two types. One is Reflect XSS which can be executed in one request for HTTP and its reply, and the other is Stored XSS which attacks those many victim users whoever access to the page which accepted the payload transmitted. To correspond to these XSS attacks, some measures have been suggested. They are data validation for user input, output validation during HTML encoding procedures, and removal of possible risk injection point to prevent from trying to insert malicious code into web application. In this paper, the methods and procedures for these two types are explained and a penetration testing is done. With these suggestions, the attack by XSS could be understood and prepared by its countermeasures.