경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
편집을 취소할 수 있습니다.
이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| [[분류:보안]][[분류:보안 공격]][[분류:정보보안기사]]
| |
| '''XSS''' : '''Cross'''-'''S'''ite '''S'''cripting
| |
|
| |
| == 개요 == | | == 개요 == |
| ; 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도하는 공격 | | ; 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도하는 공격 |
| * 일반적으로 서버가 아닌 클라이언트에 대한 공격이다.
| |
| 예를 들어, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우, 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보유출 등의 공격을 유발할 수 있다. | | 예를 들어, 검증되지 않은 외부 입력이 동적 웹페이지 생성에 사용될 경우, 전송된 동적 웹페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되어 정보유출 등의 공격을 유발할 수 있다. |
|
| |
|
10번째 줄: |
6번째 줄: |
| * 외부입력값에 스크립트가 삽입되지 못하도록 문자변환 함수 또는 메서드를 사용하여 < > & “ 등을 < > & " 로 치환 | | * 외부입력값에 스크립트가 삽입되지 못하도록 문자변환 함수 또는 메서드를 사용하여 < > & “ 등을 < > & " 로 치환 |
| * 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/패스워드, 세션 정보)를 공격자에게 전송
| |
|
| |
|
| |
|
| == 코드 예제== | | == 코드 예제== |