해킹/웹해킹 이론
-
02-02. Client Side Attack 중급 - Content Security Policy(CSP) Bypass해킹/웹해킹 이론 2023. 11. 24. 01:18
Content Security Policy(CSP) Content Security Policy(CSP, 컨텐츠 보안 정책)는 웹 페이지에 사용될 수 있는 자원의 위치, 출처 등에 제약을 걸어 공격자가 삽입하거나 요청을 보내지 못하도록 막을 수 있다. CSP는 HTTP의 헤더로 정의하거나 meta tag의 element로도 정의 할 수 있다. CSP의 기본정책 Inline Code 사용 금지 src 속성을 제외한 on* 이벤트 핸들러, javascript: URL 스킴 또한 허용하지 않는다. Eval(new Function(), setTimeOut(), setInterval() 문자열 텍스트를 코드 형태로 변환하는 함수를 허용하지 않음 / 인라인 함수 형태의 파라미터는 허용 setTimeout("alert..
-
02-01. Client Side Attack 중급 - XSS Filtering Bypass해킹/웹해킹 이론 2023. 11. 24. 01:03
이벤트 핸들러 속성 HTML 태그의 속성 값으로 스크립트를 포함할 수 있다. 다만 이벤트 핸들러의 속성에 따라 실행되기도, 되지않기도 함에 주의. onload onerror onfocus autofocus 속성을 이용해 자동으로 포커싱하거나 URL의 hash에 input tag의 id를 넣어 포커싱 시킨다. (e.g. http://dreamhack.io/#inputID) 문자열 치환 단순 제거 방식일 경우 -> 제거되는 문자열을 중간에 삽입한다. (scr + script + ipt) 활성 하이퍼링크 a / iframe tag에 사용되는 javascript: 스키마는 js code를 실행시킨다. 특수 문자를 포함한 우회 예시 실행전 정규화를 통해 (\x01, \x04, \t)와 같은 특수문자가 제거되고 대..
-
03-04. Server Side Attack - File Vulnerability해킹/웹해킹 이론 2023. 11. 21. 21:35
File Upload Vulnerability Path Traversal 이용자가 업로드할 파일의 이름을 마음대로 정할 수 있을 때 메타 문자를 사용해 서비스 내의 중요한 파일을 덮어 쓸 수 있다. 악성파일 업로드 웹 셸 업로드 (php) 공격자가 임의 php 소스파일을 .php 확장자로 업로드하고 GET method를 포함하거나 system method를 포함하면 CGI에 의해 해당 코드가 실행된다. Stored XSS (html) 악의적인 스크립트를 삽입한 html페이지를 업로드 함으로써 XSS를 시도할 수 있다. File Download Vulnerability Path Traversal 이용자가 업로드할 파일의 이름을 마음대로 정할 수 있을 때 메타 문자를 사용해 서비스 내의 중요한 파일을 다운로..
-
03-03. Server Side Attack - Command Injection해킹/웹해킹 이론 2023. 11. 21. 21:04
이용자의 입력을 시스템 명령어로 실행하게 하는 취약점을 Command Injection이라고 부른다. 우리가 shell에서 cat를 입력해 file을 볼 수 있듯이 system함수에 "cat file_name"을 전달 해 같은 동작을 수행할 수 있다. 이렇게 system 함수에 전달되는 값이 사용자의 입력으로 들어올 때 우리는 command injection을 시도할 수 있다. 이는 리눅스 셸 프로그램이 지원하는 메타 문자 때문이다. 메타문자 구분 설명 Example `` 명령어 치환 ``안에 들어있는 명령어를 실행한 결과로 치환 $ echo `echo theori` theori $() 명령어 치환 $()안에 들어있는 명령어를 실행한 결과로 치환됩니다. 이 문자는 위와 다르게 중복 사용이 가능합니다. (..
-
03-02. Server Side Attack - Non-Relational DBMS해킹/웹해킹 이론 2023. 11. 21. 02:51
Non-Relational DBMS 관계형 DBMS와 달리 SQL를 사용하지 않고 복잡하지 않은 데이터를 저장해 단순 검색 및 추가 검색 작업을 위해 매우 최적화된 저장 공간인 것이 큰 특징이자 RDBMS와의 차이점이다. RDBMS는 SQL이라는 정해진 문법을 통해 데이터를 저장하기 때문에 한 가지의 언어로 다양한 DBMS을 사용할 수 있다. 반면에 NoSQL은 Redis, Dynamo, CouchDB, MongoDB 등 다양한 DBMS가 존재하기 때문에 각각의 구조와 사용 문법을 익혀야한다는 단점이 있다. MongoDB, Redis, CouchDB에 대해서 알아보자. MongoDB(https://docs.mongodb.com/manual/reference/operator/query/) MongoDB는 ..
-
03-01. Server Side Attack - Relational DBMS해킹/웹해킹 이론 2023. 11. 21. 02:42
Relational DBMS 관계형 데이터베이스 시스템을 이르는 말로 관계형은 행과 열의 집합인 테이블형식으로 데이터를 저장하며 비관계형은 키-값 형식으로 저장을 한다. 대표적인 Relational DBMS로는 MySQL, MariaDB, PostgreSQL, SQLite이 있다. RDBMS에서 관계 연산자는 Structured Query Language (SQL) 라는 쿼리 언어를 사용하고, 쿼리를 통해 테이블 형식의 데이터를 조작한다. SQL 쿼리의 종류로는 DDL, DML, DCL이 있다. DDL(Data Definition Language) 데이터를 정의하기 위한 언어. 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행 DML(Data Manipulation Language) 데이터를 조작..
-
02. SOP 원칙 및 Client Side Attack해킹/웹해킹 이론 2023. 11. 18. 01:05
SOP(Same Origin Policy) 브라우저는 웹 리소스를 통해 간접적으로 타 사이트에 접근할 때도 인증 정보인 쿠키를 함께 전송하는 특징을 가지고 있다. 따라서, 클라이언트 입장에서는 가져온 데이터를 악의적인 페이지에서 읽을 수 없도록 해야 한다. 따라서 타 사이트에 접근해 읽어 올 때, 해당 사이트가 같은 출처 (Same Origin)인지 검사한다. 이것이 바로 브라우저의 보안 메커니즘인 동일 출처 정책 (Same Origin Policy, SOP) 이다. 악성 데이터를 읽어오는 것이 문제 이므로 다른 출처의 사이트를 쓰는 행위는 규제하지 않는다. Same Origin은 URL의 프로토콜, 포트, 호스트가 모두 같을 때 Same Origin이라 한다. 프로토콜은 앞서 말한 http / http..
-
01. Introduction해킹/웹해킹 이론 2023. 11. 15. 20:12
웹 HTTP를 이용하여 정보를 공유하는 서비스를 웹이라 한다. 정보 제공의 주체를 웹 서버 (Web Server), 정보를 받는 이용자를 웹 클라이언트 (Web Client) 라고 한다. (웹 서버, 웹 클라이언트가 고정된 것이 아니라 하는 일에 따라 서버가 될 수도 클라이언트가 될 수도 있다.) 웹서비스 중, 이용자의 요청을 받는 부분을 프론트엔드 (Front-end), 요청을 처리하는 부분을 백엔드 (Back-end)라고 부른다. 프론트엔드를 구성하는 글, 글자들의 색깔, 모양, 배경 색상, 이미지 등을 웹 리소스 (Web Resource)라고 한다. 웹 리소스 웹 리소스란, 웹에 갖춰진 정보 자산이다. 모든 웹 리소스는 고유의 Uniform Resource Identifier (URI)를 가지며, ..