전체 글

InfoSec/Web

[Web] Session Hijacking

지난 글에서 쿠키와 세션에 대해 알아 보았는데요 간략히 요약하자면 쿠키와 세션의 동작과정은 이렇습니다.서버에서 클라이언트에게 세션 ID를 발급한다클라이언트는 발급 받은 세션 ID와 함께 로그인을 한다.서버는 해당 로그인 정보를 세션 ID에 해당되는 인증 정보에 저장한다.서버는 클라이언트에게 인증 상태를 전송한다.클라이언트가 서버에게 요청을 전송할 때, 세션ID 가 저장되어 있는 쿠키와 인증 상태가 저장되어있는 쿠키를 함께 전송한다.서버는 클라이언트에게 받은 세션ID로 이에 해당 되는 인증 정보와 인증 상태가 일치하는지 확인한다.서버는 HTTP의 비연결성과 무상태성 때문에 클라이언트에게 상태 정보인 쿠키를 발급하고, 해당 쿠키의 변조를 막기 위해 세션이 존재한다는 사실까지 알 수 있었습니다. 하지만 이번 ..

Computer Science/Network

[Web] Cookie와 Session

HTTP (HyperText Transfer Protocol) 이란?지난 글에 웹에서 클라이언트와 서버가 통신하기 위해 HTTP 라는 통신규약을 사용한다는 것을 알려드렸습니다.그러면 쿠키와 세션은 어떨 때 필요한 정보일까요?HTTP 에서 아래와 같이 두 가지 큰 특징이 있습니다.비연결성(connectionless): 하나의 요청에 하나의 응답을 한 후, 둘 사이에 연결을 끊는 것무상태성(stateless): 통신이 끝난 후 상태 정보를 저장하지 않는 것이 때문에 서버는 요청을 보낸 클라이언트가 누구인지 식별할 수 없습니다. 예를 들자면, admin 이라는 사용자로 로그인을 완료했을 때, 클라이언트가 서버에 특정 요청을 할 때마다 자신의 아이디를 말하지 않는 이상 서버는 클라이언트가 어떤 사용자인지 특정할..

Computer Science/Network

[Web] 웹 브라우저와 개발자 도구 사용법

웹 브라우저란?웹 브라우저는 웹 브라우저 사용자인 클라이언트 대신 서버와 HTTP 통신을 대신 수행해주고,수신한 리소스를 시각화하여 클라이언트에게 뛰어난 이용자 경험 (User eXperience, UX)를 제공해주는 소프트웨어 중 하나입니다. 예를 들어 사용자가 브라우저의 주소창에 naver.com을 입력했을 때, 웹 브라우저는 다음과 같은 동작들을 수행합니다.URL 분석  : 주소창에 입력된 주소 (naver.com)을 해석DNS 요청 : naver.com 에 해당하는 주소 탐색 서버에 요청 : HTTP를 통해서 naver.com에 리소스 요청서버의 응답 수신 : naver.com 의 HTTP 응답 수신리소스 다운로드 및 웹 렌더링 : HTML, CSS, Javascript로 시각화 URLURL 은 ..

InfoSec/Wargame

[워게임] devtools-sources

https://dreamhack.io/wargame/challenges/267 devtools-sources개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. 플래그 형식은 DH{...} 입니다. Reference Tools: Browser DevToolsdreamhack.io 주어진 웹 폴더에서 devtools를 사용하여 플래그를 찾아내면 되는 문제다이렇게 파일을 다운받아주고, index.html을 크롬으로 열어본다.그러면 아래와 같은 화면이 나오는데, 여기서 ctr + shift + J 를 눌러서 개발자 모드를 열어준다.sources에서 ctrl + shift + F 를 눌러 전체 파일에서 검색하는 기능을 켜주고,아래의 화면처럼 DH를 검색하면 출제자가 주석처리 해놓은 플래그를 볼 수..

Language/PHP

[PHP] 게시판 만들기

오늘은 php와 MySQL을 사용해서 게시판을 만들어보도록 하겠습니다. 우선 테이블을 두개 만들겠습니다. 하나는 게시판에 들어갈 포스트에 대한 테이블, 다른 하나는 로그인에 사용될 사용자 테이블 입니다. 저는 각각 board 와 user 로 지었습니다. // 게시글 테이블CREATE TABLE `board` ( `board_id` INT NOT NULL AUTO_INCREMENT , `board_title` VARCHAR(512) NOT NULL , `user_id` BIGINT(20) NOT NULL , `board_date` DATETIME NOT NULL DEFAULT NOW() , `board_views` INT NOT NULL DEFAULT 0 ,..