G2H

보안 리서치 · 레드팀/블루팀 · DFIR · Cloud · Tooling

'분류 전체보기' 글 158건

  1. Web/Web Hacking Techniques

    Apache CouchDB (CouchDB Injection)

    CouchDB란?Apache CouchDB라고 불리는 DBMS는 NoSQL 문서 지향 데이터베이스로 일반적인 관계형데이터베이스인 RDBMS랑은 다르다.일반적은 RDBMS의 경우 테이블과 행,열을 기반으로 관리되지만, CouchDB의 경우 JSON 기반 문서(document) 구조이다. 또한 스키마가 존재하지 않으며, 각 문서마다 구조가 달라도 된다.특징JSON 포맷으로 저장하며, HTTP를 통해 RESTfull API로 접근avaScript로 작성된 MapReduce 기반의 Design Documents를 통해 쿼리 수행데이터 복지 및 분산 저장을 지원하여 고가용성 확보 가능기본 포트는 5984기본적인 사용방법1. Create : POST는 _id를 생성하거나 지정 가능curl -X POST http:/..

  2. Web/Web Hacking Techniques

    DOM Clobbering

    DOM Clobbering란?HTML 요소의 id 혹은 name 속성을 악용하여 JavaScript 전역 변수나 내장 DOM 속성을 덮어쓰는 공격 기법이다.브라우저는 페이지 로드 시 id/name이 지정된 요소를 window, document 객체의 프로퍼티로 등록한다.이 떄 정의되지 않은 변수명과 일치하는 id/name이 존재하면 해당 변수는 그 DOM 요소를 가리키게 된다. 이럴경우, a태그 form 태그와 같은 HTML 태그를 삽입하여 기존 JavaScript 코드의 변수나 프로퍼티를 덮어쓰고, 이를 통해 원래 의도와 다른 동작을 유발하게 된다.보통의 경우 Malicious공격자가 위 a태그를 삽입하면, 브라우저 로딩 시 window.redirecTo가 해당 a태그의 속성을 참조하게되며, XSS가 ..

  3. Web/Web Hacking Techniques

    Flask Debugger (Console Mode) Vulnerabilities

    Flask Debugger 활성화시 발생할 수 있는 위험은?Flask사용시 디버그 모드(Debug Mode)는 개발 편의를 위해 사용되지만, productioon환경에서 활성화가 되면 심각한 보안 취약점이 발생한다. 이를 악의적인 사용자가 악용할 경우 브라우저에서 임의의 파이썬 코드를 실행할 수 있으며 PIN 보호 또한 신뢰할 수 없다.이를 통해 취약한 Falsk의 디버그 콘솔(/console)을 통해 원격 코드 실행(RCE)이 가능하다.보통, Falsk 디버그 모드가 활성화 될 경우, 애플리케이션 실행 중 오류가 발생하게 되면 브라우저에 디버거 UI가 표시된다.이 때 /console 경로 혹은 코드 오른쪽의 터미널 아이콘을 눌러 콘솔을 실행시킬 수 있다.Flask 디버거 콘솔에서의 RCE 메커니즘Deb..

  4. Web/Web Hacking Techniques

    브라우저의 URL 정규화 방식(Proxy Tool Bypass)

    다양한 브라우저들(Chrome, Firefox 등)는 RFC 3986에 정의된 "remove dot segments" 알고리즘에 따라 URL의 경로를 정규화 과정을 거치게 된다.예를 들어 /a/b///../../../c 는 /a/b/c 와 같이 축소된다. "..", "/" 은 삭제 혹은 병합되며 경로 조각이 제거된다. URL에 포함된 ASCII 문자나 특수문자를 자동으로 URL인코딩이 이루어지게 된다.Java의 HttpURLConnection 등 프로그램 방식 호출은 기본적으로 원본 문자열을 그대로 전송하므로, 브라우저와 달리 인코딩 없이 결과가 달라질 수 있다.Proxy Tool의 URL 조작 방식대표적으로 Burp Suite 같은 프록시 도구를 사용하면 브라우저처럼 자동 정규화된 URL이 아닌, 사용..

  5. Servcer Side Requests Forgery (SSRF)
    Web/Web Hacking Techniques

    Servcer Side Requests Forgery (SSRF)

    SSRF란 무엇인가?SSRF는 클라이언트측의 입력값을 위조시켜 위조된 HTTP 요청을 보내, 일반적으로 외부에서 접근이 불가능한 서버 내부망에 접근(Access) 하여, 데이터 유출 및 서버의 기밀성, 가용성, 무결성을 파괴한다. SSRF 의 경우 CSRF 공격과 유사하지만, 공격이 이루어지는 부분이 클라이언트측이냐 서버측이냐의 차이점이 존재한다.💡 SSRF 공격이 성공적으로 Exploit 될 경우 추가 공격으로 이루어지므로, 피해가 크다. 어떻게 발생하는가?모든 클라이언트측의 요청에 응답을 한 서버에서 다루기에는 무리가 있다. 그러므로 각 서버끼리의 API를 통해 서버끼리 내부적으로 통신을 통해 요청과 응답이 이루어진다. 이때 접근 가능한 내부 IP를 통해 이루어지므로 SSRF 의 경우 루프백(Loo..

  6. Web/Web Hacking Techniques

    Encoding Obfuscation

    💡 해당 다양한 인코딩을 통한 난독화 기법은 portswigger을 상당부분 참고하였습니다.다양한 취약점을 식별하여 해당 취약점에 대한 Exploit을 진행 할 때 Payload에서 문자열 혹은 dot(.), / 등이 필터링 되어 있는 경우고 종종 다수 존재한다. 이 때 이를 우회할 수 있도록 인코딩을 통해 난독화를 이용할 수 있다. 클라이언트와 서버는 다양한 인코딩 방식을 사용하여 서로 시스템간의 데이터를 전송한다. 전달받은 데이터는 디코딩 되어 백엔드단에서 처리되된다.일반적으로 Query 매개변수는 일반적으로 서버측에서 URL 디코딩 되며,HTML 요소의 텍스트 콘텐츠는 클라이언트측에서 HTML 디코딩 된다.URL 인코딩을 통한 난독화Percent-encoding(퍼센트 인코딩) 이라고도 불리며, ..

  7. Web/Web Hacking Techniques

    401&403(Access Control) Bypass

    HTTP 상태코드 401&403특정 페이지들을 살펴보다 보면, HTTP 상태코드로 401 또는 403으로 반환되는 경우가 종종 있다. 이 두 종류의 코드는 무엇일까?401 UnauthorizeHTTP 표준에서 Unatuhorized(미승인)으로 명시하고 있지만 해당 응답의 경우 비 인증을 의미할 수 있다. 즉 클라이언트 측에서 요청을 보내게 되면, 서버로 부터의 응답을 받기 위해 인증이 이루어져야 한다는 것이다.403 Forbidden흔히 볼 수 있는 응답코드로 권한과 관련되어있다. 해당 요청 클라이언트가 요청한 콘텐츠에 접근할 권한을 가지고 있지 않음을 나타낸다. 서버측에서 해당 클라이언트의 접근을 거부한다는 것이다.Bypass 401&403HTTP 상태코드인 401과 403은 웹 사이트 정찰 과정에서..

  8. Web/Web Hacking Techniques

    ZIP Slip Vulnerability

    ZIP Slip 취약점이란?Path Traversal 취약점의 한 부분으로 아카이브 파일에서 파일을 추출하는 동안 디렉터리를 통과하는 과정에서 발생한다. 이게 무슨 소리냐? 압축된 파일 혹은 아카이브 파일에서 파일명이 절대경로 로 표시된 경로 명으로 되어 있는 경우, Unarchive 되면서 파명의 절대경로로 파일을 이동시키거나, 동일한 파일이 존재할 경우 이를 덮어쓸 수 있게 된다.왜 발생하는가?이러한 ZIP Slip 취약점은 여러 언어로 작성된 에코시스템에서 발견되지만, 높은 수준의 아카이브 파일 처리를 제공하는 라이브리가 없는 JAVA 환경에서 주로 발견된다. 이는 라이브러리가 존재하지 않기에, 개발자들이 Code Snippet을 통해 수동적으로 만들어지며, 이를 서로 공유하여 사용하기 때문에 발생..