❓ 공격 개요
DOM-Based XSS 공격 개요
> DOM(Document Object Model)이란 W3C 표준으로 HTML 및 XML 문서에 접근방법을 표준으로 정의하는 문서객체모델이다. W3C에서는 DOM을 '프로그램 및 스크립트가 문서의 컨텐츠, 구조 및 형식을 동적으로 접근 및 업데이트할 수 있도록 하는 언어 중립적인 인터페이스다'라고 정의되어 있다. DOM은 HTML문서를 계층적으로 보면서 컨텐츠를 동적으로 변경할 수 있다.
> Dom-Based XSS 공격은 악성스크립트가 남긴 URL이 사용자의 웹브라우저에서 호출이 될 경우 악성스크립트가 발생되는 취약점이다.
> 웹 브라우져에서 사용자의 입력값을 통해 동적페이지를 구성하기 때문에 DOM-Based 공격에서는 응답값의 body에 악성스크립트가 담기지 않는다
💻 실습
DOM-Based XSS 실습의 메인화면이다
언어를 선택하라고 한다
english 로 선택해보자
언어를 english 로 선택하여 select 를 누르자
default 파라미터에 English가 입력된 것을 알수 있다
또한
default 값에 test 를 입력해보면 test가 출력된다
따라서 사용자의 입력값을 통해 동적 페이지를 구성하는것을 알 수 있다.
여기서 중요한 것은
DOM-Based 는 DOM 생성의 일부로 실행되면서 공격하기 때문에
페이지 자체는 변하지 않으나, 페이지에 포함되어 있는 브라우저 측 코드가 DOM 환경에서 악성코드로 실행된다.
위의 사진과 같이 응답값에 사용자의 입력값이 담기지 않는다는것이다.
즉
순수하게 웹 브라우저단에서 동적페이지가 구성이 된다
다음과 같이 악의적인 script 를 입력했을 경우
악성 script 가 응답페이지에 구성이 되지않고 웹 브라우저단에서 구성이 되기때문에
서버측에서 default 파라미터에 대한 입력값 검증이 있다하더라도
우회가 가능하다
🔍 대응방안
https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html
DOM based XSS Prevention - OWASP Cheat Sheet Series
DOM based XSS Prevention Cheat Sheet Introduction When looking at XSS (Cross-Site Scripting), there are three generally recognized forms of XSS: The XSS Prevention Cheatsheet does an excellent job of addressing Reflected and Stored XSS. This cheatsheet add
cheatsheetseries.owasp.org
'Web Hacking > DVWA' 카테고리의 다른 글
[DVWA] - XSS (Stored) (0) | 2022.11.19 |
---|---|
[DVWA] - XSS( Reflected) (0) | 2022.11.19 |
[DVWA] - Weak Session IDs (0) | 2022.11.14 |
[DVWA] - Blind SQL Injection (0) | 2022.11.13 |
[DVWA] - SQL Injection (0) | 2022.11.12 |