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. 웹 개발 마무리 작업

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

ctf 풀이 (Steal Info)  (0) 2024.12.31
ctf 풀이 (Basic Script Prac)  (0) 2024.12.31
ctf 풀이 (XSS Challenge)  (0) 2024.12.23
ctf 풀이 (XSS 6)  (1) 2024.12.23
ctf 풀이 (XSS 5)  (1) 2024.12.23