모든 입력을 취소(문질러? 청소??)하는 것은 항상 좋은 연습입니다. 특히 그것들이 나중에 OS 명령어, 스크립트, 그리고 Database 쿼리로 사용될 입력이라면 말이죠. 특히 어플리케이션 안 어딘가에 영구적으로 저장될 내용에(을 위해?) 중요합니다. 사용자들은 사용자의 메시지가 회수될 때 다른 사용자가 바람직하지 않은 페이지나 내용을 불러올 수 있는 메시지 내용을 생성할 수 없어야 합니다.
General Goal(s):
Tomcat은 HTTP TRACE command를 지원하도록 설정되어 있습니다. 당신의 목표는 Cross Site Tracing (XST) 공격을 수행하는 것 입니다.
Cross Site Tracing(XST)??
XST 공격이란 HTTP method 중 하나인 TRACE를 이용한 XSS 공격 기법 중 하나 입니다.
서버에서 TRACE method를 지원하고 있을 때, XSS 를 통해 사용자의 cookie를 훔칩니다.
이 때 스크립트에는 주로 XML request를 이용 합니다.
Cross Site Tracing - OWASP
Cross Site Tracing (XST 공격) - LAUGHFOOL's LAB
풀이
XSS 문제의 종류인 만큼 스크립트가 실행이 되야 합니다.
따로 저장을 하는 곳이 없으니, 어딘가에 입력을 하면 입력한 내용이 DOM에 의해 화면에 표시되는 곳을 찾아야 합니다.
Enter your three digit access code:
에 숫자가 아닌 값을 입력하면 다음과 같이 화면에 입력 값이 그대로 표시됩니다.
다음은 간단한 스크립트를 실행한 모습입니다.
이제 저 위치에 XST 스크립트를 적으면 되며, 아래와 같이 적어주면 됩니다.
포스팅 때문에 라인 정렬을 했지만, 실제 입력할 때는 다 붙여서 입력하세요.
HTTP TRACE method로 요청해서 받은 값을 그대로 적는 스크립트 입니다.