전체 글

수원대학교/정보보호학과/21학번
WebHacking

[Dreamhack] Solved Challenge

풀었지만 기록하지 않은 문제들도 있을 예정... Last Update - 2023.08.21 Level 1 All Clear Level 2 Counting query crawling login-1 funjs weblog-1 development-env Level 3 Proton Memo chochoshop Login Page Level 4 Environment Pollution Flask-Dev narrow Date web-HTTP-CLI PATCH-1 read_flag KeyCat Level 5 Level 6 Level 7 NSS Level 8 Level 9 Level 10

WebHacking

[DreamHack-Server Side] Write_Up 모음

보호되어 있는 글입니다.

기초

JWT

JWT란? JWT는 유저를 인증하고 식별하기 위한 **토큰(Token)**기반 인증으로 session과 비슷하다. JWT는 JSON 데이터를 Base64 URL-safe Encode를 통해 인코딩하여 직렬화한 것이 포함된다. ✔️ session - 서버에 기록하고 식별하기 때문에 데이터 양이 많은 경우 과부하 위험 jwt - token에 기본 정보들(유효기간,회원정보 등)이 담겨 있기 때문에 서버 부담 적음 구조 Header: typ와 alg라는 정보가 존재하는데 typ의 값은 JWT이고 alg는 signature를 해싱하기위한 알고리즘이다 Payload: 서버에서 첨부한 사용자 권한 정보와 데이터가 담겨있다 Signature: Header, Payload 를 Base64 URL-safe Encode를 ..

기초

WebSocket

1. WebSocket 1.1 등장 배경 짧은주기로 서버에 데이터 요청시 매번 TCP연결(Connection)을 수행하야함 모든 클라이언트-서버 통신 메시지에 HTTP헤더를 가지게 됨으로 네트워크부하 이러한 문제들을 해결하기 위해 webSocket이 등장 1.2 HTTP polling 클라이언트에서 서버로 데이터 요청 서버로부터 응답 일정 주기로 반복 수행 요청과 응답이 있을 때마다 매번 새로운 연결 수행 1.3 WebSocket HTTP요청을 통해 WebSocket연결 연결후 클라이언트와 서버는 별도의 연결 작업없이 데이터를 주고 받음 서버와 클라이언트 모두 연결 종료 가능 2. WebSocket Frame Text - UTF-8 Encoidng OpCode(XOR적용) frame type 0 Cont..

기초

[Python] Flask

from flask import Flask app=Flask(__name__) @app.route("/",methods=["GET"]) def index(): return "Hello Python Flask" app.run(host="0.0.0.0", port=7777) 1. 필수 from flask import Flask app=Flask(__name__) @app.route("/", methods=["GET"]) app.run() 2. app.route 설정 host host=”0.0.0.0” 미지정시 루프백으로 지정되며, 0.0.0.0을 지정시에는 모든 아이피 허용으로 외부접속 가능하다 port port=7777 port설정이 가능하다 debug debug=True html,css설정시 true를 ..

기초/Docker

Docker 구현해보기

환경 : Linux Ubuntu22, WSL2 WSL2 업데이트 참고 : https://gaesae.com/161 --Docker환경 다운로드-- sudo apt update sudo apt-get install -y ca-certificates sudo apt-get install -y curl sudo apt-get install -y software-properties-common sudo apt-get install -y apt-transport-https --Docker Image 다운로드-- sudo docker pull ubuntu:22.04 sudo docker images : docker image목록 출력 --Docker Container 생성-- sudo docker create -i..

기초/Docker

Docker란?

도커(docker)는 리눅스의 응용프로그램들을 소프트웨어 컨테이너(Container) 안에 배치시키는 일을 자동화하는 오픈소스 프로젝트이다 Container : '패키징'과 '운반'을 편리하게 해준다 1. 가상머신 vs 컨테이너 공통점 : 애플리케이션을 관련 라이브러리 및 모든 종속항목과 패키지로 묶어 소프트웨어 서비스 구동을 위한 격리환경을 마련 차이점 : 가상화방식의 차이점 기존 가상머신은 OS전체를 image로 가상화하는 방식이지만 컨테이너는 별도의 하드웨어 에뮬레이션 없이 리눅스 커널을 공유하여 컨테이너를 실행하며 OS가 따로 존재하지 않는다. → 프로세스격리 2. 프로세스격리 사용자 공간을 여러 개로 나누어 프로세스에서 사용하는 리소스를 제한하는 방식 리눅스 컨트롤 그룹은 프로세스가 소비할 수 ..

기초/Docker

Docker 명령어

docker version : 버전확인 docker system info : 실행 환경 확인 docker system df : 디스크 이용 상황 docker full 이미지이름 : 이미지 다운로드 docker full -a 이미지태그 : 태그내 모든 이미지 다운로드 docker image ls : 이미지 확인 repository : 이미지 이름 tag : 이미지 태그명 image ID : 이미지 ID created :작성일 size :이미지 크기 docker container run —name 이름 -d -p 포트:포트 이미지 : 컨테이너 작동 docker container run —name webserver -d -p 80:80 nginx -p옵션 : 포트에 대한 액세스 허용 -t옵션 : termina..

Yoiiin
TISTORY