본문 바로가기

Security Study/Web

(7)
[Dreamhack] File Vulnerability ServerSide: File Vulnerability1. File Upload Vulnerability1.1. Path Traversal파일 업로드 취약점(File Upload Vulnerability)웹 서비스를 통해 이용자의 파일을 서버의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점이용자가 업로드 될 파일의 이름을 임의로 정할 수 있을 때 발생크게 Path Traversal과 악성 파일 업로드로 분류파일 업로드를 허용하는 대개의 서비스는 보안을 위해 특정 디렉토리에만 업로드를 허용제한이 없다면 악의적인 이용자가 웹 서버의 소스 코드나 서버에 있는 중요 시스템 파일을 덮어 쓸 위험이 있음Path Traversal업로드에 존재하는 제약을 우회하여 임의 디렉토리에 파일을 업로드할 수 있는 취약..
[Dreamhack] Command Injection ServerSide: Command Injection 1. Command Injection 1.1. Command Injection 인젝션(Injection) 악의적인 데이터를 프로그램에 입력하여 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법 Command Injection 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생 시스템 함수를 사용하면 이용자의 입력을 소프트웨어의 인자로 전달할 수 있음 파이썬으로 개발된 웹 애플리케이션에서 입력한 임의 IP에 ping을 전송하고 싶다면 os.system("ping[user-input]")을, 임의 파일을 읽고 싶다면 os.system("cat[user-input"..
[Dreamhack] SQL Injection Background: Relational DBMS 1. DataBase Management System 1.1. 데이터베이스 관리 시스템 웹 서비스는 데이터베이스에 정보를 저장하고 관리하기 위해 DBMS(DataBase Management System)을 사용 데이터베이스에 새로운 정보를 기록하거나, 기록된 내용을 수정, 삭제하는 역할을 함 다수의 사람이 동시에 데이터베이스에 접근할 수 있음 웹 서비스의 검색 기능과 같이 복잡한 요구사항을 만족하는 데이터를 조회할 수 있음 DBMS 종류 종류 대표적인 DBMS Relational (관계형) MySQL, MariaDB, PostgreSQL, SQLite Non-Relational (비관계형) MongoDB, CouchDB, Redis 관계형은 행과 열의 집..
[Dreamhack] Cross Site Request Forgery (CSRF) ClientSide: CSRF 1. Cross Site Request Forgery (CSRF) 1.1. Cross Site Request Forgery (CSRF) 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점 공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있음 이용자의 계정으로 임의 금액을 송금해 금전적인 이득을 취하거나, 비밀번호를 변경해 계정을 탈취하고 관리자 계정을 공격해 공지사항 작성 등으로 혼란을 야기할 수 있음 이용자의 송금 요청 GET /sendmoney?to=dreamhack&amount=1337 HTTP/1.1 Host: bank.dreamhack.io Cookie: session=IeheighaiToo4eenahw3 송금 기능 # 이..
[Dreamhack] Cross-Site-Scripting (XSS) ClientSide: XSS1. XSS1.1. XSS (Cross Site Scripting) 클라이언트 사이드 취약점 중 하나로, 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있음 공격자는 해당 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있음 SOP 보안 정책이 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 이전에 비해 힘들어져, 이를 우회하는 다양한 기술이 소개되면서 XSS 공격은 지속되고 있음 1.2. XSS 발생 예시와 종류 이용자가 삽입한 내용을 출력하는 기능에서 발생클라이언트는 HTTP 형식으로 웹 서버에 리소스를 요청하고 서버로부터 받는 응답, 즉 HTML, CSS, JS 등의 웹 리소스를..
[Dreamhack] Cookie & Session Background: Cookie & Session 1. 쿠키 1.1. 쿠키 Key와 Value로 이뤄진 일종의 단위로, 서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 서버에 요청을 보낼 때마다 쿠키를 같이 전송 서버는 클라이언트의 요청에 포함된 쿠키를 확인해 클라이언트를 구분할 수 있음 클라이언트의 IP 주소와 User-Agent는 매번 변경될 수 있는 고유하지 않은 정보일 뿐만 아니라, HTTP 프로토콜의 Connectionless와 Stateless 특징 때문에 웹 서버는 클라이언트를 기억할 수 없음 Connectionless와 Stateless 특성을 갖는 HTTP에서 상태를 유지하기 위해 쿠키(Cookie)가 탄생 HTTP 프로토콜 특징 Connectionless특정 요청에 대한 연결은 이..
[Dreamhack] Background - Web Background: Web 1. 웹 1.1. 웹 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스 웹 서버: 정보 제공 주체 웹 클라이언트: 정보 받는 이용자 HTTP: 웹상에서 서로 통신을 하기 위해 정해둔 일종의 규칙 웹의 발전과 웹 보안의 중요성 초기 웹 서비스는 저장된 문서의 내용을 출력해 이용자에게 제공하는 간단한 서비스 웹과 관련된 기술이 발전하면서 금융, 쇼핑, 협업 등 다양한 분야에서 이용자에게 편의를 주는 복잡한 서비스로 진화 단순히 정보를 보여주는 것에서 정보를 검색하고 직접 제품을 구매할 수 있도록 변화 웹에서 처리하는 정보 자산들이 많아짐에 따라 이들을 안전하게 보관하고 처리해야 할 필요성도 함께 증가 웹을 통한 정보의 교환 과정에서 민감한 정보들이 유..