Server Side Includes (SSI) Injection
Web/Web Hacking Techniques
Server Side Includes (SSI)Server Side Includes (SSI)는 웹 서버가 HTML 페이지를 동적으로 구성하기 위해 사용하는 간단한 서버 사이드 스크립트 기술이다. SSI 지시어는 HTML 주석 형식으로 삽입되며, 페이지가 로드될 때 서버가 해당 지시어를 해석하여 내용을 치환한다. 즉, CGI나 기타 서버 프로그래밍으로 전체 페이지를 생성하지 않고도 다양한 동적 콘텐츠를 포함할 수 있다.SSI 지시어중 와 같은 문자를 HTML에 넣으면 페이지 출력 시 현재 서버 시간을 해당 위치에 채워 넣는다. 또한, 일반적으로 파일 확장자가 .shtml, .stm, .shtml 인 HTML 파일에서 동작한다. 웹 서버는 이러한 확장자의 파일을 응답하기 전에 내부적으로 파싱하여 SSI..
LDAP Injection (Active Directory)
Web/Web Hacking Techniques
LDAP?LDAP(Lightweigth Directory Access Protocol, 경량 디렉터리 액세스 프로토콜)은 디렉터리 서비스와 작용하기 위한 응용 프로토콜로, Active Directory(AD) 를 비롯한 여러 디렉터리 서비스에서 활용된다. AD는 조직 내 컴퓨터, 사용자, 그룹 등에 대한 인증과 권한 부여를 담당하는 핵심 윈도우 서비스이며, LDAP는 AD가 이러한 디렉터리 데이터를 조회하고 통신하는데 사용하는 "언어" 이다. 즉, AD에 저장된 사용자 계정 정보나 보안 정보를 다른 시스템이나 애플리케이션이 조회하려 할 떄 LDAP 프로토콜을 통해 질의와 응답이 이루어진다. 이렇듯, LDAP 및 AD는 기업 보안의 필수 요소이다. 현재 많은 웹 어플리케이션은 OAuth, JWT, SSO를..
Content Security Policy(CSP) Mechanism (feat.Bypass)
Web/Web Hacking Techniques
CSP 기본 개념Content Securty Policy 즉, CSP라 불리는 콘텐츠 보안 정책은 웹 애플리케이션에 대한 클라이언트 측 보안 정책이다.웹 페이지에서 로드되거나 실행될 수 있는 리소스의 출처를 제어함으로써 XSS를 포함한 다양한 클라이언트 측 코드 삽입 공격을 방어하는 추가 보안 계층이다. 서버가 HTTP 응답 헤더에 CSP 규칙을 지정하면 브라우저는 해당 규칙에 따라 다양한 콘텐츠를 어떤 출처에서 불러올 수 있는지를 제한하게 된다. CSP 규칙에 위배되는 행위가 발생하면 브라우저 콘솔에는"Refused to execute inline script because it violates the CSP directive…"와 같은 오류가 표시된다. 즉, CSP는 신뢰된 출처로 명시된 리소스만 로..
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가 ..