Web Hacking 9

[Dreamhack] ServerSide: SQL Injection

SQL Injection을 알아보기 전에 먼저 기본적으로 Injection 공격을 알아보겠습니다 Injection 주입이라는 의미를 가진 영단어로 이용자의 입력값이 어플리케이션의 처리 과정에서 구조나 문법적인 데이터로 해석되어 발생하는 취약점을 의미합니다 SQL Injection의 예를 들면 로그인창에 정상적인 아이디와 비밀번호를 입력하지 않고 비밀번호는 모르지만 아이디만 아는 계정이 있다고 하면 'a' 라는 아이디 계정으로 로그인 하겠습니다 라는 요청을 로그인창을 통해 보내게 되면 DBMS는 비밀번호 일치 여부를 검사하지 않고 아이디가 'a'인 계정에 로그인 시켜주게 되는 것 입니다 위와 같이 DBMS에서 사용하는 질의 구문인 SQL을 삽입하는 공격을 SQL Injection 이라고 합니다 SQL In..

Web Hacking 2023.04.06

[Dreamhack] Background : Relational DBMS

RDBMS 데이터베이스를 관리하는 시스템, 애플리케이션을 DBMS (DataBase Management System) 라고 부릅니다 데이터베이스는 대표적으로 관계형과 비관계형이 존재하는데 오늘 볼 내용은 RDBMS 관계형 데이터베이스를 볼겁니다 RDBMS의 종류는 대표적으로 MySQL, MariaDB, PostgreSQL, SQLite가 있습니다 RDBMS는 Codds가 12가지 규칙을 정의하여 생성한 데이터베이스 모델입니다 행과 열의 집합으로 구성된 테이블의 묶음 형식으로 데이터를 관리하고, 테이블 형식의 데이터를 조작할 수 있는 관계 연산자를 제공합니다. 실제론 12가지 규칙 모두 따르진 않고 최소한의 조건으로 앞의 두 조건을 만족하는 DBMS를 RDBMS라고 부르게 되었습니다 RDBMS에서 관계 연..

Web Hacking 2023.04.04

[Dreamhack] ClientSide : CSRF

Cross Site Request Forgery (CSRF) CSRF는 교차 사이트 요청 위조로 간단하게 예시를 들면 싸인만 되어있고 내용은 적혀있지 않은 계약서를 빼앗아 공격자 마음대로 계약서 내용을 적는것 이라고 보시면 됩니다 그렇다면 이미 계약서엔 싸인이 되어있기 때문에 그 계약서는 효력을 발휘할 수 있습니다 이런식으로 CSRF는 클라이언트를 속여서 의도치 않는 요청에 동의하는 공격을 말합니다 CSRF 공격에 성공하기 위해선 공격자가 작성한 악성 스크립트를 이용자가 실행해야 합니다 이런 공격 방식에는 메일을 보내거나 게시판의 글을 이용자가 조회하도록 유도하는 등의 방법이 있습니다 CSRF 공격 스크립트는 HTML 혹은 JS를 통해 작성할 수 있습니다 위 사진은 HTML로 작성한 스크립트입니다 img..

Web Hacking 2023.03.30

[Dreamhack] ClientSide : XSS

Cross Site Scripting(XSS) XSS는 공격자가 웹 리소스에 악성 스크립트를 삽입해 클라이언트의 웹 브라우저에서 해당 스크립트를 실행합니다 공격자는 해당 취약점을 통해 특정 계정의 세션이나 쿠키를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있습니다 해당 취약점은 SOP 보안 정책이 등장하면서 서로 다른 오리진에서는 정보를 읽는 행위가 이전에 비해 힘들어졌습니다 하지만 이를 우회하는 다양한 기술들이 소개되면서 XSS 공격은 지속되고 있습니다 XSS 발생 예시 Stored XSS : XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XSS Reflected XSS : XSS에 사용되는 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS DOM-base..

Web Hacking 2023.03.30

[Dreamhack] Mitigation: Same Origin Policy

Same Origin Policy(SOP) 브라우저는 인증 정보로 사용되는 쿠키를 보관하고, 웹 서비스에 접속할 때 해당 쿠키를 함께 전달합니다 이는 악의적인 페이지가 클라이언트의 권한을 이용해 대상 사이트에 요청을 보내어 정보 유출과 같은 보안 위협이 발생 따라서 브라우저는 동일 출처 정책(Same Origin Policy, SOP)을 사용하여 악의적인 페이지에서 가져온 데이터를 읽을 수 없도록 보호합니다. Orgin (오리진) 구별법 Origin 구성 프로토콜 (Scheme) 포트 호스트 SOP는 Cross Origin이 아닌 Same Origin 에서만 정보를 읽을 수 있도록 해줍니다 JS를 통해서 SOP를 테스트 하는 코드 Same Origin sameNewWindow = window.open('..

Web Hacking 2023.03.30

[Dreamhack] Background: Cookie & Session

쿠키 클라이언트 IP 주소와 User-Agent는 매번 변경될 수 있는 고유하지 않는 정보 HTTP 프로토콜 특징 Connectionless : 하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것을 의미 Stateless : 통신이 끝난 후 상태 정보를 저장하지 않는 것을 의미 이런 HTTP의 특징을 상쇄하고 Status를 유지하기 위해 쿠키(Cookie)가 탄생했습니다 쿠키는 Key와 Value로 이뤄진 일종의 단위 서버가 클라이언트에 쿠키를 발급하면 클라이언트는 서버에 Request를 보낼 때마다 쿠키를 전송 서버는 클라이언트가 보낸 쿠키를 확인해 클라이언트를 확인 쿠키없이 HTTP 통신을 하면 Server는 클라이언트가 누군지 계속해서 확인하기 위해 로그인 요청을 합니다 하지만 쿠키가 있으면 클..

Web Hacking 2023.03.29

[Dreamhack] Background : Web Browser

웹 브라우저 서버와 HTTP 통신을 대신해주고, 수신한 리소스를 시각화하여 일반 이용자가 인터넷의 사용을 편하게 하는 도구(?) 웹 브라우저 기본동작 웹 브라우저의 주소창에 입력된 주소를 해석 (URL) 주소 탐색 (DNS 요청) HTTP를 통해 주소에 요청 주소의 HTTP 응답 수신 리소스 다운로드 및 웹 렌더링 (HTML, CSS, JavaScript) URL Uniform Resource Locator 인터넷에서 웹 페이지, 이미지, 비디오 등 리소스의 위치를 가리키는 문자열입니다. Scheme : HTTP, HTTPS, FTP(파일 전송 프로토콜)와 같은 리소스에 액세스하는 데 사용할 프로토콜에 대해 설명합니다. User : 일부 서비스는 로그인하기 위해 인증이 필요하며, 로그인하기 위해 URL에..

Web Hacking 2023.03.28

[Dreamhack] Background : HTTP/HTTPS

인코딩 아스키 유니코드 base64 URL인코드 등 HTTP Hyper Text Transfer Protocol 서버와 클라이언트의 데이터 교환을 Request(요청)과 Response(응답) 형식으로 정의한 프로토콜 입니다 💡 네트워크 포트(Network Port) 란 네트워크에서 서버와 클라이언트가 정보를 교환하는 추상화된 장소를 의미합니다. 포트에는 항구라는 의미가 있는데, 클라이언트가 서버의 포트에 접근하여 데이터를 내려놓고, 서버가 클라이언트에 보낼 데이터를 실어서 돌려보내는 장면을 연상하면 포트의 기능을 이해할 수 있습니다. 편의상, 네트워크를 설명하는 맥락에서는 네트워크를 생략하여 “포트”라고 부르기도 합니다. 💡 서비스 포트(Service Port) 는 네트워크 포트 중에서 특정 서비스가 ..

Web Hacking 2023.03.28

[Dreamhack] Background : Web

웹 웹 (Web) - HTTP를 이용하여 정보를 공유하는 서비스 HTTP (HyperText Transfer Protocol) - 웹 페이지 데이터 전송을 위해 웹 서버와 통신하는 데 사용되는 규칙 집합 웹 서버 (Web Server) - 정보를 제공하는 주체 웹 클라이언트 (Web Client) - 정보를 받는 이용자 프론트엔드 (Front-end) - 사용자의 요청을 받는 부분 백엔드 (back-end) - 사용자의 요청을 처리하는 부분 웹 리소스 HTML (Hyper Text Markup Language) - 웹 문서의 뼈와 살, 태그와 속성을 통한 구조화된 문서 작성 지원 CSS (Cascading Style Sheets) - 웹 리소스들의 시각화 방법을 기재한 스타일 시트, 생김새를 지정 JS ..

Web Hacking 2023.03.28