문제 설명render_template을 우회하여 플래그 값을 구하라 페이지 설명모든 엔드포인트는 xss-1 문제와 똑같은 구성으로 이루어져 있다. 아래의 포스트를 참고하여 파악해보자https://e-dl.tistory.com/65 [워게임] xss-1 : innerHTML 풀이문제 설명XSS 기법을 사용하여 쿠키에 저장된 플래그 값을 탈취하자. 페이지 설명/ : 인덱스 페이지입니다./vuln : 이용자가 입력한 값을 출력합니다./memo : 이용자가 메모를 남길 수 있으며, 작성e-dl.tistory.com 달라진 점은 /vuln 의 코드이다@app.route("/vuln")def vuln(): return render_template("vuln.html")사용자가 입력한 param 값을 바로 리턴..
문제 설명XSS 기법을 사용하여 쿠키에 저장된 플래그 값을 탈취하자. 페이지 설명/ : 인덱스 페이지입니다./vuln : 이용자가 입력한 값을 출력합니다./memo : 이용자가 메모를 남길 수 있으며, 작성한 메모를 출력합니다./flag : 전달된 URL에 임의 이용자가 접속하게끔 합니다. 해당 이용자의 쿠키에는 FLAG가 존재합니다./vuln 페이지에 접속하면 param 자리에 script 를 작성한 것이 제대로 작동하는 것을 확인할 수 있다.여기서 vuln의 코드를 보게 되면 사용자가 입력한 파라미터를 바로 return 하기 때문에 이것이 바로 XSS 취약점이 될 수 있는 것이다.@app.route("/vuln")def vuln(): param = request.args.get("param", ..
맥북은 윈도우의 WSL 같은 프로그램이 없기 때문에 가볍게 돌리기 위해 도커를 사용하여 우분투를 설치해보겠습니다. 1. Docker 설치우선 아래의 링크에서 각자 사양에 맞는 dmg 파일을 다운로드 해주세요https://docs.docker.com/desktop/install/mac-install/ MacInstall Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.docs.docker.com만약 cpu 가 intel 이시면 intel 버전을, M1~3에 해당하시면 Apple Silicon 버전을 다운로드 해주시면..
지난 글에서 쿠키와 세션에 대해 알아 보았는데요 간략히 요약하자면 쿠키와 세션의 동작과정은 이렇습니다.서버에서 클라이언트에게 세션 ID를 발급한다클라이언트는 발급 받은 세션 ID와 함께 로그인을 한다.서버는 해당 로그인 정보를 세션 ID에 해당되는 인증 정보에 저장한다.서버는 클라이언트에게 인증 상태를 전송한다.클라이언트가 서버에게 요청을 전송할 때, 세션ID 가 저장되어 있는 쿠키와 인증 상태가 저장되어있는 쿠키를 함께 전송한다.서버는 클라이언트에게 받은 세션ID로 이에 해당 되는 인증 정보와 인증 상태가 일치하는지 확인한다.서버는 HTTP의 비연결성과 무상태성 때문에 클라이언트에게 상태 정보인 쿠키를 발급하고, 해당 쿠키의 변조를 막기 위해 세션이 존재한다는 사실까지 알 수 있었습니다. 하지만 이번 ..
HTTP (HyperText Transfer Protocol) 이란?지난 글에 웹에서 클라이언트와 서버가 통신하기 위해 HTTP 라는 통신규약을 사용한다는 것을 알려드렸습니다.그러면 쿠키와 세션은 어떨 때 필요한 정보일까요?HTTP 에서 아래와 같이 두 가지 큰 특징이 있습니다.비연결성(connectionless): 하나의 요청에 하나의 응답을 한 후, 둘 사이에 연결을 끊는 것무상태성(stateless): 통신이 끝난 후 상태 정보를 저장하지 않는 것이 때문에 서버는 요청을 보낸 클라이언트가 누구인지 식별할 수 없습니다. 예를 들자면, admin 이라는 사용자로 로그인을 완료했을 때, 클라이언트가 서버에 특정 요청을 할 때마다 자신의 아이디를 말하지 않는 이상 서버는 클라이언트가 어떤 사용자인지 특정할..
웹 브라우저란?웹 브라우저는 웹 브라우저 사용자인 클라이언트 대신 서버와 HTTP 통신을 대신 수행해주고,수신한 리소스를 시각화하여 클라이언트에게 뛰어난 이용자 경험 (User eXperience, UX)를 제공해주는 소프트웨어 중 하나입니다. 예를 들어 사용자가 브라우저의 주소창에 naver.com을 입력했을 때, 웹 브라우저는 다음과 같은 동작들을 수행합니다.URL 분석 : 주소창에 입력된 주소 (naver.com)을 해석DNS 요청 : naver.com 에 해당하는 주소 탐색 서버에 요청 : HTTP를 통해서 naver.com에 리소스 요청서버의 응답 수신 : naver.com 의 HTTP 응답 수신리소스 다운로드 및 웹 렌더링 : HTML, CSS, Javascript로 시각화 URLURL 은 ..
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를 검색하면 출제자가 주석처리 해놓은 플래그를 볼 수..
오늘은 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 ,..