본문 바로가기
728x90

Portswigger/DOM-based vulnerabilities3

Portswigger - DOM XSS using web messages and JSON.parse solution 이번 문제는 웹 메시지를 JSON으로 구문분석하고 print함수를 호출하면 문제가 풀린다. 사이트의 script문을 보면 createElement로 ifame 태그를 생성하고 iframe변수로 선언한다 그리고 appendChild를 이용해 iframe 변수를 body안에 넣는다. 그다음 JSON.parse를 이용해 e.data 즉, 메시지의 내용을 자바스크립트 객체로 만들어준다. 이로써 메시지를 JSON형태로 작성하면 되는 걸 알 수 있다. 그 아래 switch문을 봐보자 3가지의 case로 나눠져 있는데 이중 우리가 주목해야 될 case는 두 번째다. 만약 d.type 즉, JSON형태의 메시지에서 type키를 가진 값이 load-channel일 때 ACMEplayer.element.src(iframe.. 2024. 1. 18.
Portswigger - DOM XSS using web messages and a JavaScript URL solution 이번 문제는 웹 메시지와 자바스크립트 url을 이용한 DOM XSS문제다. 사이트 script를 보면 메시지로 받은 내용을 url변수에 저장 후 url에서 http:나 https:가 존재한다면 url주소로 리다이렉트 시켜준다. print() 함수를 출력해야 하므로 javascript를 url에서 실행시켜야 된다. https://jh-hack.tistory.com/85 Portswigger - DOM XSS in jQuery anchor href attribute sink using location.search source solution 문제를 해석하면 anchor 요소를 찾아서 href를 바꿔라 그래서 back링크가 document.cookie를 alert함수로 호출하면 문제가 풀리는 것 같다. 우선 .. 2024. 1. 17.
Portswigger - DOM XSS using web messages solution 이번 문제는 웹 메시지를 이용한 DOM XSS 문제다. 사이트의 html을 살펴보면 addEventListener함수를 이용해 message를 수신을 받아 ads라는 id를 가진 div자리에 넣어주는 것 같다. 그럼 message를 수신받으려면 송신하는 방법도 알아야 되는 여기서 사용되는것이 window.postMessage이다. https://developer.mozilla.org/ko/docs/Web/API/Window/postMessage Window.postMessage() - Web API | MDN window.postMessage() 메소드는 Window 오브젝트 사이에서 안전하게 cross-origin 통신을 할 수 있게 합니다. 예시로, 페이지와 생성된 팝업 간의 통신이나, 페이지와 페이.. 2024. 1. 15.
728x90