본문 바로가기

보안관련/취약점

2. XSS (사이트 간 스크립팅)

XSS (사이트간 스크립팅), 영문명칭 (cross-site scripting) 은 악성 사용자가 페이지, 혹은 어플케이션에서

서버에 악성스크립트를 가진 문장, 쿼리등을 보내는 취약점을 의미한다.

 

사용자는 해당 페이지, 링크 등을 실행하게 될 경우, 악성 스크립트가 실행이 될 우려가 있다.

 

 

 

 

 

XSS의 큰 흐름은 악성코드가 삽입된 파일등을 게시하여 시스템 명령어 실행을 유도하는 것으로

설명된다. 

가장 기본적인 방법으로 사용자에게 저장된 Script를 실행시키는 방법에서부터

구문 분석 취약점을 병행 이용하여 사용자에게 허용되지 않은 알림창 정도를 띄우는 것에서부터

쿠키,세션 정보의 탈취나 쉘 권한 탈취, Botnet 공격으로까지 이어질 수 있어 주의를 요한다.

 

『 Stored XSS 』

 

위 그림에서 설명된 사용자가 파일을 받아옴으로써 악성 스크립트가 실행되는 구조이다.

과거 페이지에 파일을 업로드 하는 방법에서부터, 어도비사 플래시등의 웹과 상호작용하는

점을 이용하여 악성코드에 감염시키는 행위가 빈번하게 일어났다.

 

https://www.boannews.com/media/view.asp?idx=36879&kind=14 

 

그누보드 ‘FLASH XSS’ 취약점 발견!

PHP기반 공개 웹 어플리케이션인 그누보드에서 FLASH XSS(Cross Site Scripting) 취약점이 발견되어 사용자들의 주의가 필요하다.

www.boannews.com

관련 기사

 

이 외에 파일명이나 헤더등을 변조해 스크립트를 주입, 

이미지 파일을 해석하기 위해 metadata를 이용하는 많은 서비스의 취약점을 공략하여

사용자가 게시글 버튼을 눌러 접속하기만 하여도 시스템에 위협을 초래하는 등

다양한 방법으로 발전하고 있다.

 

 

『 Reflected XSS 』

 

 

 

 

위 그림과 같이 악성 스크립트가 포함된 URL, 파라미터를 사용자가 전송하여

쿠키를 탈취할 수 있다. 악성 사용자는 모든 링크가 게재 가능한 곳, Querystring 취약점 등을

이용해 사용자가 링크에 접속하는 순간 클라이언트가 해당 구문을 해석하여 발생될 수 있는 문제이다.

 

 

 

 

 

『 해결 방법 』

 

모든 스크립트를 사용할 수 있는 곳에 대해 입력 값을 검증한다. (필터링)

 

입력 값을 제한하는 방법도 있으며, 입력 값을 우회하여 치환하는 방법도 있다.

혹은 사용자에게 최소한의 가시영역만을 보여주어 노출을 피하는 방법도 권장된다.

 

클라이언트(사용자)에게 가장 권장되는 방법은 각 브라우저 상 존재하는

쿠키 보안, 콘텐츠 보안 정책등을 이용해  스크립트 로드를 막는 방법으로,

대부분의 브라우저 상에서 이런 방법이 적용된 후로 Reflected XSS 공격은 점차 잦아들고 있다.

 

 

 

 

 

 

 

'보안관련 > 취약점' 카테고리의 다른 글

4. 악성파일 실행, LFI, RFI ( Remote File Include )  (0) 2021.12.17
3. SQL Injection  (0) 2021.12.16
1. URL 접근 통제 실패  (0) 2021.12.13
기술순서  (0) 2021.12.12