크로스사이트 스크립트 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
4번째 줄: 4번째 줄:
== 개요 ==
== 개요 ==
; 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도하는 공격
; 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도하는 공격
* 일반적으로 서버가 아닌 클라이언트에 대한 공격이다.
예를 들어, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우, 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보유출 등의 공격을 유발할 수 있다.
예를 들어, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우, 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보유출 등의 공격을 유발할 수 있다.


10번째 줄: 9번째 줄:
* 외부입력값에 스크립트가 삽입되지 못하도록 문자변환 함수 또는 메서드를 사용하여 < > & “ 등을 &lt; &gt; &amp; &quot; 로 치환
* 외부입력값에 스크립트가 삽입되지 못하도록 문자변환 함수 또는 메서드를 사용하여 < > & “ 등을 &lt; &gt; &amp; &quot; 로 치환
* HTML태그를 허용하는 게시판에서는 허용되는 HTML 태그들을 화이트리스트로 만들어 해당 태그만 지원하도록 한다.
* HTML태그를 허용하는 게시판에서는 허용되는 HTML 태그들을 화이트리스트로 만들어 해당 태그만 지원하도록 한다.
== 종류 ==
=== 저장 XSS ===
;웹 애플리케이션 취약점이 있는 웹 서버에 악성 스크립트를 저장해 놓는 방법
[[파일:저장_XSS_공격.png]]
* '''공격 절차'''
*# 게시판, 프로필, 댓글 등에 악성 스크립트를 삽입
*# 사용자가 사이트를 방문하여 저장되어 있는 페이지에 정보를 요청할 때(게시판 글 읽기 등)
*# 서버는 악성 스크립트를 사용자에게 전달하여 사용자 브라우저에서 스크립트가 실행되면서 공격
=== 반사 XSS ===
;웹 애플리케이션의 지정된 변수를 그대로 출력할 때 발생하는 취약점을 이용
[[파일:반사_XSS_공격.png]]
* ex) http://www.server.com/search/?q=<script>alert(document.cookie)</script>&x=0&y=0
** 결과) <script>alert(document.cookie)</script>에 대한 검색결과입니다!
** 스크립트가 실행된다.
* '''공격 절차'''
*# 취약점이 있는 A사이트를 발견
*# 민감한 정보를 획득할 수 있는 공격용 악성 URL을 생성
*# 공격자는 이 URL을 이메일, SMS 등에 포함하여 배포하고 클릭 유도
*# 피해자가 URL을 클릭하면, 바로 공격 스크립트가 피해자로 반사되어 A 사이트에 관련된 민감한 정보(ID/패스워드, 세션 정보)를 공격자에게 전송


== 코드 예제==
== 코드 예제==
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)