분류 전체보기 155

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 5 - RDBMS

RDBMS(Relations DataBase Management System) DBMS(DataBase Management System) 이란? DBMS 는 데이터베이스에 새로운 정보를 기록하거나 기록된 내용을 수정, 삭제하는 역할을 수행한다. DBMS 에는 다수의 사람이 동시에 데이터베이스에 접근할 수 있고, 검색 기능과 같은 복잡한 요구 사항을 만족하는 데이터를 조회할 수 있다는 특징이 있다. DBMS 의 종류에는 관계형, 비관계형이 있는데 이 둘의 차이점은 관계형은 행과 열의 집합인 테이블 형식으로 데이터를 저장하고, -> MySQL, MariaDB, PostgreSQL, SQLite 비 관계형은 테이블 형식이 아닌 키-값 형태로 값을 저장한다. -> MongoDB, CouchDB, Redis SQ..

TeamH4C 2022.10.14

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 4 - CSRF

ClientSide : CSRF CSRF(Cross Site Request Forgery)란? 사이트 간 요청을 위조하는 것으로 이용자를 속여서 의도치 않은 요청에 동의하게 하는 공격이다. 그럴듯한 웹 페이지를 만들어 이용자의 입력을 유도한 후, 이용자가 값을 입력하면 이를 은행이나 중요 포털 사이트 등으로 전송하여 마치 이용자가 동의한 것 같은 요청을 발생시킨다. 만약, 이용자가 자동 로그인의 기능을 사용하여 브라우저에 세션 쿠키를 저장하고 있었다면, 실제로 계좌 이체가 발생하거나 비밀번호 초기화가 발생할 수 있다. CSRF(Cross Site Request Forgery)의 동작 CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야 한다. 이는 공격자가 이용자에게 메일을..

TeamH4C 2022.10.14

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 3 - XSS

ClientSide : XSS(Cross Site Scripting) ClientSide 취약점은 웹 페이지 이용자를 대상으로 공격할 수 있는 취약점이다. 해당 종류의 취약점을 통해 이용자 식별을 위한 쿠키 및 세션 정보를 탈취해 해당 계정으로 임의의 기능을 수행할 수 있다. Cross Site Scripting 의 약어가 XSS 인 이유는? CSS 로 해도 되는데 스타일시트를 정의하는 언어인 CSS 와 중복되므로 XSS 로 명명되었다. XSS(Cross Site Scripting) 은 어떤 것일까? 공격자가 웹 리소스에 악성 스크립트를 삽입하여 이용자의 웹 브라우저에서 해당 스크립트를 실행하면서 발생한다. 공격자를 이를 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행한다. 해당..

TeamH4C 2022.10.14

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 2 - 2

Background : Cookie & Session 웹 서버는 어떻게 많은 클라이언트들을 구별하고 서비스를 제공하는것일까? HTTP 프로토콜로 웹 서버와 통신할 때 웹 서버에게 명령을 내리기 위해 GET, POST 등과 같은 메소드와 자원의 위치를 가리키는 URL 등이 포함되어 있다. 헤더를 통해서 웹 서버에게 요청을 보내고 웹 서버는 헤더를 읽고 결과 값을 클라이언트에게 반환한다. 이때, 헤더는 클라이언트의 정보와 요청 내용을 구체화하는 데이터가 포함되어 있다. -> 클라이언트의 인증 정보 또한 포함 가능함. 클라이언트의 IP 주소와 User-Agent 는 매번 변경될 수 있는 고유하지 않은 정보이다. 또한, HTTP 프로토콜의 Coneectionless, Stateless 특징 때문에 웹 서버는 클..

TeamH4C 2022.10.13

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 2 - 1

Mitigation : Same Origin Policy 쿠키에는 인증 상태를 나타내는 민감한 정보가 보관되며, 브라우저 내부에 저장된다. 브라우저가 웹 서비스에 접속할 때 브라우저는 자동으로 쿠키를 헤더에 포함시켜 요청한다. 이용자가 악의적인 페이지에 접속했을 때, 페이지가 자바스크립트를 사용해 이용자의 SNS 웹 서비스로 요청을 보낸다면 로그인 된 이용자의 SNS 응답을 받을 것이다. 그렇게 된다면 마음대로 페이지 접속자의 SNS 에 글을 쓰고, 삭제하고, 읽는 것이 가능해진다. 이와 같은 문제를 방지하기 위해서 Same Origin Policy(SOP), 동일 출처 정책 보안 메커니즘이 탄생했다. 1. Same Origin Policy(SOP) 란? 클라이언트 사이드 웹 보안에 있어 중요한 요소이다..

TeamH4C 2022.10.13

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 1 - 4

Web Browser 웹 브라우저는 사용자가 돌아가는 원리를 알지 않아도 서비스를 이용 가능하게 해주는 소프트웨어이다. 웹 브라우저의 기본적인 동작 1. 이용자가 주소창에 dreamhack.io 를 입력한다. 2. 웹 브라우저의 주소창에 입력된 주소를 해석한다. 3. 입력된 주소를 탐색한다. (DNS 요청) 4. HTTP를 통해 dreamhack.io 에 요청한다. 5. dreamhack.io의 HTTP 응답을 수신한다. 6. 리소스 다운로드 및 웹 렌더링 (HTML, CSS, JavaScript) DNS(Domain Name Server)란 무엇일까? : Domain Name 과 IP Address 를 매핑해서 IP Address 를 반환해주는 역할을 수행한다. URL 구성 요소 중 Host 는 웹 브..

TeamH4C 2022.10.13

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 1 - 3

HTTP/HTTPS - HTTP(HyperText Transfer Protocol)/HTTPS(HyperText Transfer Protocol Secure Socket Layer) 는 무엇일까? : URI 의 구성 요소 중 Scheme(Protocol) 에 해당한다. : 서버와 클라이언트의 데이터 교환을 요청과 응답의 형식으로 정의한 프로토콜이다. : 클라이언트가 서비스 포트에 HTTP 요청을 전송하면, 이를 해석하여 적절한 응답을 반환한다. : Conectionless, Stateless 의 특징을 가지고 있다. (Conectionless : 한번 연결하고 연결을 종료, Stateless : 상태를 저장하지 않는다.) : TCP 혹은 TLS(암호화된 TCP)를 사용하여 통신한다. : 웹 서버는 HTT..

TeamH4C 2022.10.13

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 1 - 2

introduction of Webhacking 1. 웹이란 무엇인가? : HTTP 를 이용하여 정보를 공유하는 통신 서비스를 말한다. : 서비스를 요청하고 받는 사용자는 웹 클라이언트(Web Client) : 웹 서비스를 제공하는 대상을 웹 서버(Web Server) 라고 한다. 2. 웹 기초 지식 : 웹 브라우저는 사용자가 웹과 HTTP 의 원리를 알지 못해도 서비스를 사용할 수 있도록 도와주는 소프트웨어다. : 모든 취약점은 사용자의 입력 값에서부터 발생한다. -> 사용자의 입력 값은 웹 브라우저를 통해서 전송되므로 웹 해킹을 공부하기 위해서는 브라우저가 하는 행위를 필수적으로 이해해야 한다! : 웹 리소스란 웹에서 사용하는 콘텐츠를 의미하는데 이때 웹 리소스를 가리키는 주소는 URL(Uniform..

TeamH4C 2022.10.12

[빡공팟 5기] W4 : Web Hacking 로드맵 - STAGE 1 - 1

Browser DevTools 1. Tools : Browser DevTools (개발자 도구) 개발자 도구는 어떤 용도로 사용하는 걸까? : 프론트 엔드 부분은 버그나 오류가 발생하는 경우가 빈번하며 CSS 수정, 자바 스크립트의 수행 결과 확인 등의 작업을 수행하는 경우가 많다. 이런 경우, 에디터와 웹 브라우저를 번갈아가면서 한다면 매우 번거롭다. 개발자 도구는 이러한 불편함을 해소해준다. 브라우저 개발자 도구로 가능한 일들은 1. HTML, CSS 코드를 직접 수정하고 결과 확인이 가능하다. 2. 자바스크립트 코드를 대상으로 디버거를 제공하며 함수 실행이 가능하다. 3. HTTP 패킷을 상세하게 보여준다. 이는 프로토콜 상 발생하는 문제를 쉽게 발견할 수 있다. -> 이렇게 편리한 만큼 공격자도 ..

TeamH4C 2022.10.12

[WEB] 이메일 인증 기능 구현

회원가입 당시에 인증을 비활성화 상태로 초기화 시킨 다음에 로그인 할 시에 인증 상태를 확인하고 이메일 인증이 되어 있지 않으면 바로 이메일 인증 페이지로 넘어가게 했다. PHP 에서 이메일을 전송할 때 PHPmailer 를 이용한다. 우선, 구글에 phpmailer 를 검색 후 깃허브 페이지로 들어간다. 여기서, 초록색 Code 버튼을 누르고 Zip 파일을 다운로드 받은 후 src 디렉토리에 들어가서 phpmailer.php, smtp.php 파일을 작업하고 있는 파일과 같은 위치에 넣는다. -> 다른 위치여도 상관 없는 듯하다. 경로 입력만 잘 해주면 되는듯? 필자는 그냥 같은 경로에 넣음. 자, 이제 외부 SMTP 서버를 이용해보자! 필자는 네이버 계정으로 진행했다. 네이버 로그인을 한 다음, 메일..

개인 공부 2022.10.12