DOM Clobbering
Web/Web Hacking Techniques
DOM Clobbering란?HTML 요소의 id 혹은 name 속성을 악용하여 JavaScript 전역 변수나 내장 DOM 속성을 덮어쓰는 공격 기법이다.브라우저는 페이지 로드 시 id/name이 지정된 요소를 window, document 객체의 프로퍼티로 등록한다.이 떄 정의되지 않은 변수명과 일치하는 id/name이 존재하면 해당 변수는 그 DOM 요소를 가리키게 된다. 이럴경우, a태그 form 태그와 같은 HTML 태그를 삽입하여 기존 JavaScript 코드의 변수나 프로퍼티를 덮어쓰고, 이를 통해 원래 의도와 다른 동작을 유발하게 된다.보통의 경우 Malicious공격자가 위 a태그를 삽입하면, 브라우저 로딩 시 window.redirecTo가 해당 a태그의 속성을 참조하게되며, XSS가 ..
Dom-Based-XSS
Web/Web Hacking Techniques
DOM-Based-XSS란?DOM-Based-XSS는 Reflected xss와 유사하지만, 엄연히 다르다. 이 둘의 차이점은 DOM-Based의 경우 Relected 와 달리 입력 값을 통해 동적 웹 페이지를 구성 및 악성 스크립트가 실행되는 구간이 웹 브라우저(Client Side)이다. 즉 주로 URL의 해시(fragment identifier)나 클라이언트 측에서 동적으로 변경되는 DOM 요소에 악성 스크립트가 삽입되어 발생한다. 오늘날에 Server의 부하를 줄이기 위해 dom사용이 증가하고 있어, DOM-Based의 중요도가 커지고 있다. 또한 DOM-Based의 경우 사용자의 입력값에 대해 처리 로직이 브라우저단에서 이루어져 소스코드로 노출 될 수 있다. 예를 들어, innerHTML와 같은..
[WEB] DOM (Document Object Model)
Web/Web Hacking Techniques
DOM이란 무엇인가? Document Object Model 즉 문서 객체 모델로서 XML 또는 HTML 문서에 접근할 수 있도록 하는 인터페이스이며, 계층 적으로 표현되는데, 이를 통해 내용을 생성, 변경 및 삭제등 작업을 할 수 있도록 하며, 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있도록 연결시켜 주는 담당을 한다. 즉 쉽게 말해 HTML 문서에 접근하기 위한 표준 API라고 생각하면 된다. DOM은 플랫폼 및 언어 독립적인 프로그래밍 인터페이스를 제공하며, 일반적으로 JS 객체를 통해 제공하는데 이를 흔히 DOM API 라고 한다. DOM API를 통해 웹 페이지의 구성 요소에 쉽게 접근하여 구조를 탐색, 내용, 속성, 스타일을 추가 삭제 변경이 가능하다. DOM API는 각 객..