크로스사이트 스크립팅(XSS) 취약점?
- 검증되지 않은 입력값으로 인해 사용자의 웹 브라우저에 의도하지 않은 악성 스크립트가 실행되는 취약점
- 브라우저로 전달되는 데이터에 악성 스크립트가 포함되어 사용자의 브라우저에서 실행되며 해킹
- 사용자의 정보(세션, 쿠키 등)가 탈취, 악성코드 감염 등이 발생할 수 있는 위험이 있음
- Stored XSS, Reflected XSS, DOM XSS 공격 방식이 있음
1. Stored(저장형) XSS
* 공격자가 게시판이나 방명록 등에 악의적인 스크립트 삽입 후 사용자가 해당 게시글 클릭 시 저장되어 있던 스크립트가 실행되는 공격
* 악성 스크립트가 공격 대상의 DB 등에 보존(지속적)
* 게시판이나 방명록, 회원 정보 같은 사용자 입력값을 저장하거나 열람할 수 있는 곳에서 발생
* 사용자가 악성 스크립트가 담긴 게시판의 글을 볼 때마다, 스크립트 실행됨
* 세션, 쿠키, 아이디, 비밀번호 같은 정보를 탈취할 수 있음
1 - 1. 점검 방법
* 사용자 입력 폼 식별하기(사용자/프로필 페이지, 장바구니, 파일 관리자, 애플리케이션 기본 설정, 게시판 등)
* HTML 코드 분석
<input class=“box” type=“text” name=“email” size=“40” value=“123@123.com” /> |
>> 악성 스크립트 주입(URL 인코딩)
123@123.com%22%3E%3Cscript%3Ealert(document.cookie)%3C%2Fscript%3E
>> 주입 후 HTML 코드
<input class=“box” type=“text” name=“email” value=“123@123.com”><script>alert(document.cookie)</script> |
입력이 저장되고 페이지를 다시 로드할 때 브라우저에서 xss 페이로드가 실행되면서 위의 삽입에 의해 쿠키 값을 포함하는 팝업 창을 생성한다.
2. Reflected(반사형) XSS
* URL에 악의적인 스크립트 삽입 후 요청 시 스크립트가 서버로부터 그대로 반사되어 브라우저에서 스크립트가 실행되는 공격
* 검색 결과, 에러 메시지 등 서버가 외부에서 입력받은 값을 받아 브라우저에게 응답할 때 발생(비영구적)
* 응답하는 과정에서 위험한 문자를 사용자에게 그대로 돌려주면서 발생
* 개인정보(세션, 쿠키) 탈취, 페이지 콘텐츠(다운로드 링크 등) 변경할 수 있음
* 공격자가 의도한 사이트로 리다이렉트할 수 있음
2 - 1. 점검 방법
* 예) 입력값에 따라 Welcom %username% 문구가 뜨는 사이트 에서, 사용자 변수를 사용해 취약점 점검
>> 주소에 스크립트 삽입
http://example.com/index.php?user=<script>alert(123)</script>
* 다운로드 링크가 있는 사이트에서, 악성 스크립트 삽입
>> 주소에 악성 스크립트 삽입 후 사용자가 링크 클릭 시, 악성 파일을 다운로드 하게 됨
3. DOM XSS
* DOM 환경에서 악의적인 수정으로 인해 클라이언트 측 코드가 예상치 못한 방식으로 공격 구문이 실행되는 공격으로 서버와 관계없이 브라우저에서 발생하는 공격
* DOM은 HTML 및 XML 문서에 접근하는 방법을 표준으로 정의하는 문서 객체 모델
* 서버와 관계없이 브라우저에서 발생
* 피해자의 브라우저에 악성 코드 주입 및 실행 가능, 인증 정보(쿠키 등) 탈취 가능
'Web > Webhacking' 카테고리의 다른 글
SQL 인젝션 (0) | 2022.04.22 |
---|---|
크로스사이트 스크립팅 공격 및 우회 기법 (0) | 2022.04.20 |
파일 다운로드 공격 및 우회 기법 (0) | 2022.04.13 |
파일 다운로드(File Download) (0) | 2022.04.13 |
파일 업로드 공격 및 우회 기법 (0) | 2022.04.01 |
댓글