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가 ..
Cross-Site Script (XSS)
Web/Web Hacking Techniques
XSS란 무엇인가?동적인 처리가 이루어지는 웹 어플리케이션에서 공격자에 의해 조작된 악의적인 스크립트를 사용하여, 비정상적인 행위를 강제하게 하도록 하는 공격이며, 일반적으로 브라우저 측 스크립트 형태의 악성 코드를 다른 최종 사용자에게 보낼 때 발생한다. XSS 취약점은 OWASP TOP10에 매번 등록되는 취약점이다.왜 발생 하는가?사용자의 입력값이 웹 브라우저상에 노출되는 구간에서 사용자의 입력값을 검증하지 않고 신뢰하게되어, 각각의 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와 같은..