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:"등을 제거하거나 이스케이프 처리가 이루어지며, 브라우저 측 필터는 렌더링 전에 응답 내용 중 의심 패턴..
Redis (Redis Injection)
Web/Web Hacking Techniques
Redis란?Redis(Remote Dlctionary Server)는 In-Memory 기반의 Key-Value 데이터 저장소로, 초고속의 데이터 처리를 위해 메모리 기반으로 설계된 NoSQL 데이터 베이스이다.아래와 같은 특징을 가진다.오픈소스 (BSD License)싱글 스레드 기반비정형 데이터 구조 (String, List, Hash, Set, Sorted Set 등)캐시, 세션 저장소, Pub/Sub. Queue, 리더보드 등 다양한 용도로 사용됨고성능, 낮은 지연(latency), 높은 처리량(throughput)6379 포트 사Redis 구조Redis Server모든 요청을 처리하며, 데이터는 메모리에서 저장됨Redis Client다양한 언어로 클라이언트 라이브러리를 지원 (Python, G..
MongoDB (MongoDB Injection)
Web/Web Hacking Techniques
MongoDB란?MongoDB는 문서 지향 NoSQL 데이터베이스로, 일반적으로 사용되는 관계형 데이터베이스인 RDBMS와 달리 스키마가 없거나 느슨한 스키마를 가지며 JSON 형태로 데이터를 저장하는 BSON(Binary JSON) 형식을 사용한다MongoDB의 주요 특징특징 설명NoSQL 기반스키마 없는 구조로 데이터 유연성과 확장성이 뛰어남문서 지향데이터를 문서(Document) 형태로 저장하며 JSON 유사 구조BSON 포맷바이너리 JSON으로 데이터를 저장하여 속도와 효율성 증가수평적 확장성Sharding 및 복제(Replication)를 통해 분산 확장 지원인덱싱 및 성능효율적인 인덱스 구조로 빠른 쿼리 처리 가능복제 및 고가용성Replica Set을 통해 장애 대비와 고가용성 확보MongoD..
Apache CouchDB (CouchDB Injection)
Web/Web Hacking Techniques
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:/..
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가 ..
Flask Debugger (Console Mode) Vulnerabilities
Web/Web Hacking Techniques
Flask Debugger 활성화시 발생할 수 있는 위험은?Flask사용시 디버그 모드(Debug Mode)는 개발 편의를 위해 사용되지만, productioon환경에서 활성화가 되면 심각한 보안 취약점이 발생한다. 이를 악의적인 사용자가 악용할 경우 브라우저에서 임의의 파이썬 코드를 실행할 수 있으며 PIN 보호 또한 신뢰할 수 없다.이를 통해 취약한 Falsk의 디버그 콘솔(/console)을 통해 원격 코드 실행(RCE)이 가능하다.보통, Falsk 디버그 모드가 활성화 될 경우, 애플리케이션 실행 중 오류가 발생하게 되면 브라우저에 디버거 UI가 표시된다.이 때 /console 경로 혹은 코드 오른쪽의 터미널 아이콘을 눌러 콘솔을 실행시킬 수 있다.Flask 디버거 콘솔에서의 RCE 메커니즘Deb..
브라우저의 URL 정규화 방식(Proxy Tool Bypass)
Web/Web Hacking Techniques
다양한 브라우저들(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이 아닌, 사용..
Servcer Side Requests Forgery (SSRF)
Web/Web Hacking Techniques
SSRF란 무엇인가?SSRF는 클라이언트측의 입력값을 위조시켜 위조된 HTTP 요청을 보내, 일반적으로 외부에서 접근이 불가능한 서버 내부망에 접근(Access) 하여, 데이터 유출 및 서버의 기밀성, 가용성, 무결성을 파괴한다. SSRF 의 경우 CSRF 공격과 유사하지만, 공격이 이루어지는 부분이 클라이언트측이냐 서버측이냐의 차이점이 존재한다.💡 SSRF 공격이 성공적으로 Exploit 될 경우 추가 공격으로 이루어지므로, 피해가 크다. 어떻게 발생하는가?모든 클라이언트측의 요청에 응답을 한 서버에서 다루기에는 무리가 있다. 그러므로 각 서버끼리의 API를 통해 서버끼리 내부적으로 통신을 통해 요청과 응답이 이루어진다. 이때 접근 가능한 내부 IP를 통해 이루어지므로 SSRF 의 경우 루프백(Loo..