참조 : http://laughfool.tistory.com/50

 

------------------------------ 내용 ----------

XST 라는 공격에 대해 알아보겠습니다.

사실 모의해킹 시에 많이 사용하지는 않는 기법이지만, 그래도 알아봅시다 ㅋㅋ


1. XST 공격이란?

 XST 공격이란 기본적으로 HTTP 메소드 중 하나인 TRACE메소드를 이용한 XSS기법 중 하나입니다.

서버에서 TRACE 메소드를 지원하고 있을 때, 클라이언트가 서버로 TRACE 요청을 보내면 서버는 요청받은 메시지를 그대로 반환하여 응답합니다. 이때 TRACE요청에 의해 반환되는 응답에는 사용자의 쿠키정보 등과 같은 중요정보도 포함되게 되는데 이걸 가로채는 공격입니다.

TRACE 메소드를 이용한 요청을 보내기 위해서는 XMLHTTP 나 XMLDOM을 주로 이용하게 됩니다.


2. XST 공격은 어떨때 쓰나요?

 그냥 XSS로 공격하면 되지 왜 굳이 불편하게 XST공격을 사용할까요?

XSS공격을 통해 쿠키를 탈취하게 되면 HttpOnly와 같은 기능을 이용하여 쿠키탈취에 대해 방어를 할 수 있지만, TRACE 명령을 이용한 XST에서는 HttpOnly기능을 우회하여 쿠키탈취가 가능하기 때문입니다.


3. 그럼 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>


4. 방어는 어떻게 하나요?

[Apache]
 Apache의 경우 httpd.conf 에서 아래와 같이 HTTP 메소드를 제한할 수 있습니다.

 <Directory />
 <LimitExcept GET POST>
  Order allow,deny
  deny from all
 </LimitExcept>
 </Directory>


[IIS]
 IIS의 경우 WebDAV를 중지하거나 URL Scan과 같은 툴을 사용하여 HTTP메소드 제한할 수 있습니다.
(http://technet.microsoft.com/en-US/security/cc242650.aspx#e)


[Tomcat]
WEB-INF\web.xml 에 아래와 같이 설정

<security-constraint>
   <web-resource-collection>
   <web-resource-name>Forbidden</web-resource-name>
       <url-pattern>/*</url-pattern>
       <http-method>HEAD</http-method>
       <http-method>PUT</http-method>
       <http-method>DELETE</http-method>
       <http-method>TRACE</http-method>
   </web-resource-collection>

   <auth-constraint>
       <role-name></role-name>
   </auth-constraint>
</security-constraint>



 

Posted by 삽지리
,