[모의해킹 실습] XSS 취약 페이지 구현 및 공격 실습

XSS(Cross Site Scripting)

XSS는 공격자가 삽입 또는 제공한 악의적인 스크립트가 사용자의 브라우저에서 실행되는 취약점이다. 악의적인 스크립트 코드가 삽입된 입력 값을 서버가 적절한 검증 절차 없이 반환하기 때문에 발생한다. 공격 방법과 우회 방법, 공격 목적이 다양해 자주 사용되는 공격이기 때문에 서비스에 따라 정확한 보안 대책을 세워야 한다.

 

XSS로 인해 발생되는 피해는 다음과 같다.

사용자의 개인정보 탈취

Keylogger 형태의 스크립트를 사용하여 키보드 입력 값 탈취

사용자의 쿠키정보 탈취

Document.cookie를 사용하여 해당 사용자의 쿠키 값 탈취

피싱 사이트로 강제 이동

Location.href등을 사용하여 페이지 강제 이동

악성코드 다운로드 및 실행

악성코드 다운로드 링크로 이동 및 낮은 보안수준에서 악성코드 강제 실행

 

XSS의 공격 종류는 다음과 같다.

종류

대상/특징

Reflected XSS

URL 접근 대상

Stored XSS

불특정 다수

DOM Based XSS

URL 접근 대상 / 서버를 거치지 않음

취약 페이지 구현

   <body>
    <div id="search_box">
    <form action="search.php" method="get">
      <select name="menu">
        <option value="title">제목</option>
        <option value="name">글쓴이</option>
      </select>
      <input type="text" name="search" size="40" value = "<?php echo $_GET['search']; ?>" required="required" /> <button>검색</button>
    </form>
    </div>
    <div id="write_btn">
      <a href="/freeboard/write.html" class="btn btn-outline-info float-right">글쓰기</a>
    </div>
  </div>
</body>
</html>

/freeboard/search.php 중 일부

Reflected XSS

1. 공격 원리

공격자가 악의적인 스크립트가 포함된 URL 메신저, 이메일 등을 이용하여 사용자에게 전송한다. URL 사용자가 접근할 경우 스크립트가 동작하여 피해를 발생시킨다.

피싱 사이트 강제 이동 시나리오는 다음과 같다.

1. 공격자는 악의적인 피싱사이트를 구축합니다.

2. Reflected XSS 취약점이 있는 웹에 악성 스크립트를 포함한 URL 사용자에게 노출합니다.

3 . 희생자는 URL 클릭 악의적인 웹으로 강제 이동합니다.

4. 희생자는 공격자의 의도대로 피싱 사이트로 이동되며 ID PW 입력합니다.

 

공격 실습

No.

실습 위치

비고

1

http://localhost/freeboard/search

게시글 검색 기능

 

Step1: Reflected XSS 발생하는 위치를 확인한다. 게시글 검색의 search 파라미터에서 스크립트가 실행되는 것을 확인한다.

입력구문 : /><script>alert(1)</script>

Reflected XSS 실행위치 확인

Step2: 리스폰스 분석을 통해 사용자의 입력값이 스크립트로 실행 되었음을 확인할 있다.

Reflected XSS 응답 값


Step3:공격자는 XSS 취약점을 이용해 악성 스크립트를 작성 URL 노출시킨다. 미리 구성한 피싱 사이트로 강제 이동시켜 사용자에게 계정정보를 입력하게 있습니다.

 

Step4:URL 접속한 사용자는 피싱 사이트로 접근한다.

피싱 사이트(fakelogin)으로 연결

Step5:사용자는 자신의 계정정보로 로그인 시도를 하게 되며 실패 메시지 이후 알고 있는 패스워드 목록으로 접속을 시도한다.

로그인 시도 및 실패메시지

Step6:공격자는 사용자가 입력한 계정정보를 수집하여 탈취할 있다. 데이터베이스에 사용자가 시도한 계정목록이 기록된다.

피싱 데이터 수집

Reflected XSS 발생하는 사이트의 경우 악성 사이트로 이동하는 경유지가 있다. 신뢰 있는 사이트일수록 Reflected XSS 방지하여 경유지로 사용되는 것을 막아야 한.

반응형