XSS(Cross Site Script) mechanism
Web/Web Hacking Techniques
본 내용은 XSS가 어떠한 메커니즘을 통해 공격되고 우회되는지에 대한 내용이다.XSS에 대한 기본적인 내용은 아래 링크에서 확인 할 수 있다.https://hg2lee.tistory.com/entry/Cross-Site-Script-XSS Cross-Site Script (XSS)XSS란 무엇인가?동적인 처리가 이루어지는 웹 어플리케이션에서 공격자에 의해 조작된 악의적인 스크립트를 사용하여, 비정상적인 행위를 강제하게 하도록 하는 공격이며, 일반적으로 브라우저hg2lee.tistory.com서버/클라이언트 측 필터링 메커니즘과 우회 허점서버측에서는 요청을 처리할 때 "script, javascript:"등을 제거하거나 이스케이프 처리가 이루어지며, 브라우저 측 필터는 렌더링 전에 응답 내용 중 의심 패턴..
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 공격 기법에 의해 웹 브라우저, 웹 애플리케이션, 백엔드 단에서 악성스크립트가 실행되고 이를 통해 쿠키, 세션 토큰 등 기타 민감한 정보에 엑세스 할 수 있게 되며, 이 외에도 다양한 공격 기법으로 연계될 수 있게 된다.공격 방식다양한 스크립트 언어가 있지만 현..
Stored-Based-XSS
Web/Web Hacking Techniques
Stored XSS란 무엇인가?Stored XSS는 사용자의 입력 값을 전달 받아 서버 데이터베이스에 저장한 후 해당 저장 값을 불러와 동적 페이지를 구성할 때 발생하는 취약점이다. 보통 게시글이나, 댓글 기능에서 발견된다.Stored XSS 가 다른 XSS와의 차이는 악성 스크립트가 담긴 URL을 직접 전달하지 않아도 된다는 것이다. 공격자는 악성 스크립트를 게시글 저장과 같은 기능을 이용하여, 서버 데이터베이스에 저장한 후 희생자가 해당 페이지에 접근하면 웹 서버 데이터베이스에서 정보를 가져와 동적 페이지를 구성하며, 이 과정에서 스크립트가 실행된다. 💡 Stored XSS의 경우 게시판으로 예를 들어, 글쓰기 기능과 수정기능에 대한 내부 소스코드가 서로 상이하기에, 모든 기능에 대해 테스트 해봐야..
Reflected XSS
Web/Web Hacking Techniques
Reflected XSS란 무엇인가?Reflected XSS는 반사형 XSS로 사용자의 입력값을 받아 동적 페이지를 구성하는 환경에서 발생한다. DOM Based XSS 와의 큰 차이점은 DOM Based XSS는 브라우저단에서 입력값을 받아 동적 페이지를 구성하며 악성 스크립트가 실행된다면, Reflected XSS는 클라이언트 측에서 사용자의 입력값을 받아 서버측에서 동적 웹 페이지를 구성 후 다 클라이언트 측에게 보내고 브라우저단에서 출력된다. 이때 스크립트가실행된다. 이를 구별 하는 방법으로는 Dom을 제어하는 스크립트가 브라우저단의 개발자 도구를 통해 노출되는지 확인하면 된다. 반대로 Reflected XSS는 응답페이지 내에 사용자의 입력값이 실려 노출된된다.사용자의 입력값이 URL 의 매개변..
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와 같은..
Content Security Policy(CSP) Bypass
Web/Web Hacking Techniques
CSP란 무엇인가?Content Security Policy 란 XSS , CSRF, Click Jacking와 같은 공격들을 완화하는 것을 목표로 만들어진, 브라우저 보안 메커니즘이며, HTTP 응답 헤어이다. 또한 메타태그를 통해 적용할 수도 있다. 이는 페이지가 특정 출처에서의 리소스를 제한하고 페이지가 다른 페이지에 의해 구성될 수 있는 여부를 제한하는 방식이다. CSP 형식Content-Security-Policy: ; META 태그를 활용한 CSP 적용HTTP 헤더를 활용한 CSP 적용Content-Security-Policy: policyCSP를 활용한 ExampleContent-Security-Policy: ; 위와 같은 형식으로 CSP를 적용할 수 있으며, 아래의 예시와 같이 사용된다...
RequestsBin (+Using requestsbin with XSS)
Web/Web Hacking Techniques
What is RequestsBin 사용자가 HTTP 요청을 보낼 수 있는 서버, 사이트(URI)를 생성하도록 도와주는 서비스이다. RequestBin으로 생성된 URI로 HTTP 요청을 보내게 되면 사용자는 요청(Request)을 검사하고 분석하여, 웹 후크, API 및 기타 유형의 HTTP기반 통합을 디버깅하고 테스트하는 데 사용할 수 있다. 해당 요청에 대해서 요청 헤더와 본문을 확인할 수 있다. (이는 테스트 및 개발목적으로 사용할 수 있다.) function 요청 헤더 및 본문검사 요청 내역 보기 여러 URI 를 동시에 검사 요청 재생 URI 공유 가능 위 사진과 같이 페이지가 생성되며, 왼쪽 창에서의 요청(Request)을 확인할 수 있다. 클라이언트에서 보낸 요청에대한 request값이 요청..