XSS (Cross Site Script) Attack - 1. #Web Hacking #Cheat Sheet #Hacking #DreaMerZ-Note



안녕하세요. 잊지 않기 위해 기록하는 블로그. DreaMerZ-Note 입니다.

XSS(Cross-Site Script) Attack 은 Web 공격 중 하나입니다. 공격자가 웹 사이트에 악성 Script를 삽입하여 다른 사용자의 브라우저에서 실행하게 만드는 공격입니다. 일반적으로 XSS를 이용하면 쿠키나 세션 정보를 탈취하여 사용자의 입력을 가로챌 수 있습니다. 
 

* Reference.



    | 저장형 XSS (Stored XSS)


    저장형 XSS는 공격자가 게시판의 글쓰기나, 댓글 등 Web 기능에 악성 스크립트를 삽입하여 서버에 스크립트를 저장한 후 다른 사용자가 해당 페이지에 접근할 때 실행되는 공격입니다.

    1. 댓글란에 악성 Script 삽입
    2. 게시판 글에 악성 Script 삽입

    저장형은 일반적으로 '글'을 작성하는 기능이므로 공격 난이도가 낮습니다. 다만, html 태그, script 구문이 필터되는 경우, Web Proxy Tool(ex. Fiddeler, BurpSuite ..)로 MITM 환경 구성 후 Request 패킷에서 script 구문을 적용할 수 있습니다.  


    | 반사형 XSS (Reflected XSS)


    반사형 XSS는 공격자가 삽입한 스크립트가 서버에 저장되지 않고, 반사되어 사용자의 브라우저에서 실행되는 공격입니다. 

    1. URL Query 파라미터에 악성 Script 삽입
    ex. http://www.sample.com/search?site=<script>alert('hello?')</script>

    2. 검색 결과 페이지에서 스크립트 실행
    검색 페이지에서 입력한 값이 HTML 코드로 반환되는 경우, 검색 값에 악성 스크립트 포함 시 실행합니다. 


    | DOM 기반 XSS (DOM-based XSS)


    DOM 기반 XSS는 Client Side Javascript 에서 DOM 을 처리할 때 발생하는 취약점입니다. 서버 측의 영향을 받지 않고 Client 측에서만 발생합니다. 

    1. innerHTML 을 사용하여 스크립트 삽입
    Javascript 코드에서 사용자 입력을 innerHTML로 처리할 때, 악성 코드를 포함한 HTML이 DOM에 삽입되어 실행될 수 있습니다. 

    2. location.hash, document.URL 을 사용한 스크립트 삽입
    URL 해시 또는 문서 URL에서 입력을 가져와 DOM을 조작할 때, 악성 코드가 삽입되어 실행될 수 있습니다.


    | XSS 공격 패턴 예시


    1. <script>alert('XSS')</script>
    2. <img src="javascript:alert('XSS')">
    3. <a href="javascript:alert('XSS')">Click me</a>
    4. <iframe src="javascript:alert('XSS')"></iframe>
    5. <object data="javascript:alert('XSS')"></object>
    6. <meta http-equiv="refresh" content="0;url=javascript:alert('XSS')">
    7. <body onload="alert('XSS')">
    8. <input type="text" value="<script>alert('XSS')</script>">







    댓글 없음: