background/web

    [NoSQL] Redis DBMS

    [NoSQL] Redis DBMS

    Redis(Remote Dictionary Server) 레디스(Redis)는 "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다. 데이터를 string, list, set, hash, stored set, bitmap 형태로 저장할 수 있다. 레디스는 모든 데이터를 메모리에 저장하고 조회한다. (인메모리 데이터베이스) 레디스는 지속성을 보장하기 위해 데이터를 DISK에 저장할 수 있다. 서버가 내려가더라도 DISK에 저장된 데이터를 읽어서 메모리에 로딩을 한다. 데이터를 DISK에 저장하는 방식은 크게 두 가지 방식이 있다. RDB(Snapshotting) 방식 : 순간적으로 메모리에 있는 내용을 DISK에 전체를 옮겨 담는 방식 ..

    [NoSQL] CouchDB

    [NoSQL] CouchDB

    CouchDB CouchDB는 키와 값이 하나의 쌍을 이루는 데이터를 저장하며 JSON 객체 형태인 도큐먼트를 저장한다. HTTP 기반의 서버로 동작하며 REST API 형식으로 HTTP 메소드를 사용해 요청을 받고, 처리한다. (CouchDB는 HTTP 클라이언트를 사용해 접근할 수 있다) 일반적으로 _ 문자로 시작하는 URL 요소 및 JSON 필드는 특수 구성 요소를 나타낸다. 구성 요소 설명 / 인스턴스에 대한 메타 정보 반환 /_all_dbs 인스턴스의 데이터베이스 목록 반환 /utils 관리자 페이지(Fauxton Administration Interface)로 이동 /db 지정한 데이터베이스에 대한 정보 반환 /{db}/_all_docs 지정한 데이터베이스에 포함된 모든 도큐먼트 반환 /{db..

    SSTI(Server Side Template Injection)

    SSTI(Server Side Template Injection) 공격자가 서버측의 기본 템플릿 구문을 이용하여 악성 페이로드를 삽입한 다음 서버 측에 실행되면서 생기는 취약점이다. 웹 템플릿 엔진마다 사용되는 페이로드가 다르다. (여기선 Jinja에 대해서만 알아보겠다) 파이썬에는 MRO라는 기능이 구현되어있다. https://ssongkit.tistory.com/138 [Python] MRO(Method Resolution Order) 이 글은 파이썬의 MRO 기능에 대해 공부하기 위해 레퍼런스를 참고해 정리한 글입니다. MRO(Method Resolution Order) 메서드 해결(결정) 순서라고 직역할 수 있겠다. MRO를 이해하기 전 먼저 파이썬은 다 ssongkit.tistory.com MR..

    XXE Injection 이해를 위한 XML 기초 지식

    이 글은 XXE Injection을 공부하기 위해 TCP School의 XML 강의를 정리한 글입니다. http://www.tcpschool.com/xml/intro 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com XML XML은 JSON과 같이 데이터를 전달하기 위한 목적으로 만들어졌다. XML은 다른 마크업 언어를 만드는데 사용되는 다목적 마크업 언어이다. 또한 스키마를 가지고 있는데 스키마는 DTD(Document Type Definition)와 XML 스키마(XSD)로 작성할 수 있다. XML의 content-type은 application/xml 이다. DTD DTD(문서 타입 정의)는 XML 문서의 구조 및..

    XXE(XML External Entity) Injection

    이 글은 XXE Injection에 대해 공부하기 위해 레퍼런스를 참고해 작성했습니다. XXE(XML External Entity) Injection 직역하면 XML 외부 객체 삽입 공격이라고 할 수 있다. XXE는 외부 엔티티(Entity) 정의의 보안 취약점을 이용한 공격이다. 엔티티는 반복적으로 나오는 문장이나 문자열을 다른 곳에 저장해 놓고 참조하는 객체이다. 재사용이 가능한 XML 조각, DTD 조각, 긴 문자열, 상수, non-XML 데이터가 될 수 있다. 엔티티는 XML 문서뿐만 아니라 DTD 문서 안에서도 참조가 가능하다. XXE Injection으로 할 수 있는 공격의 종류 LFI, RFI, XXS Attack, DOS가 있다. LFI는 상대경로를 이용해 원하는 파일에 접근할 수 있다. ..