Almon Dev

모의해킹 공부 11주차 (XSS 활용) 본문

웹 해킹/웹 해킹

모의해킹 공부 11주차 (XSS 활용)

Almon 2024. 12. 27. 01:05

11주 차 정리

 

XSS 대응 방안

HTML Entity 치환

< ' " >와 같이 HTML 구조에 영향을 미치는  특수문자를 HTML Entity로 치환하면 XSS를 막을 수 있습니다.

=> 원천적으로 XSS가 불가능

=> HTML Editor와 같이 사용하지 못하는 곳도 존재 ex) 블로그, 커뮤니티 등

 

HTML Editor

HTML Editor를 이용하는 사이트를 HTML Entity로 치환을 하면 기능이 작동을 하지 않습니다.

ex) <img>, <b>, <a> 등

 

대응 방안

1. 사용자의 입력 중 HTML 특수문자를 HTML Entity로 치환합니다.

ex) < > => &lt; &gt;

 

2. 허용할 태그를 식별하고 그 태그만 살립니다.

=> 화이트 리스트 기반 필터링

ex) <img>, <a>, <b> 등

 

3. 살린 태그들 내부에 악의적인 이벤트 핸들러를 필터링합니다.

=> 블랙리스트 기반 필터링

ex) onerror, onfocus, onclick 등

 

Client Script 활용

Page Redirection

location.href = "공격자 서버";
location.replace("공격자 서버");

 

location.href는 주소창을 의미합니다.

=> 입력한 페이지로 이동시킵니다.

=> 히스토리 기록에 남아 뒤로 가기를 통해 돌아갈 수 있습니다.

 

location.replace는 입력한 페이지로 전환시키는 함수입니다.

=> 입력한 페이지로 전환시킵니다.

=> 히스토리에 기록이 남지 않아 뒤로 가기를 통해 돌아갈 수 없습니다.

 

 

주소창 변조

history.pushState(null, null, "주소");

 

history.pushState(state, title, url) 함수는 브라우저의 히스토리 객체에 새로운 항목을 추가하는 함수입니다.

이 함수를 이용해 브라우저를 새로고침하지 않고 url을 변경할 수 있습니다.

 

 


DOM 객체 접근

document.quertSelector('input');
document.getElementById('input');
document.getElementsByClassName('input');

 

자바스크립트를 이용해 웹 페이지의 각 태그에 접근할 수 있고, 속성 및 내용을 탈취할 수 있습니다.

 



Iframe 이용

<iframe src="불러올 사이트" id="target"></iframe>

let iframeTag = document.querySelector('#target');
let domData = iframeTag.contentDocument;
domData.querySelector('가져올 태그');

 

사이트 내부에 다른 사이트를 불러오는 iframe태그를 이용해 사이트를 이동하지 않고

다른 사이트의 정보를 가져올 수 있습니다.

=> 사이트를 이동하면 실행 중이던 자바스크립트가 종료됨

 


과제

1. 강의 내용 정리
2. CTF 문제 풀기
3. CTF 풀이 작성 (블로그)
4. 웹 개발 마무리 작업

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

CSRF 정리 (feat. SOP/CORS)  (0) 2025.01.16
모의해킹 공부 12주차 (CSRF)  (0) 2025.01.11
모의해킹 공부 10주차 (XSS)  (0) 2024.12.20
모의해킹 공부 9주차 (XSS)  (1) 2024.12.13
모의해킹 공부 8주차 (SQL Injection)  (3) 2024.12.06