Dreamhack

문제  풀이우선 이문제에서는 페이지가 총 3개로 나뉘어져 있다. 1. vuln(xss) page여기에서는 param 매개변수에 script 태그를 직접 넣어 스크립트가 실행되는 것을 확인할 수 있다. 2. memomemo 페이지는 memo 매개변수에 넣은 값이 화면에 출력되는 것을 확인할 수 있다.스크립트를 직접 삽입해서 사용할 수 는 없다고 판단된다. 3. flagvuln 페이지에 파라미터로 입력할 수 있는 input 박스가 존재한다. 이제 제공된 코드를 확인하도록 하자app = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open("./flag.txt", "r").read()except: FLAG = "[**FLAG**]"우선 fl..
문제  풀이아래는 처음 웹에 접속하면 확인할 수 있는 페이지이다. 여기에서는 정보를 알아낼 수 없기에 내부 소스코드를 확인해보도록 하자.#!/usr/bin/python3from flask import Flask, request, render_template, gimport sqlite3import osimport binasciiapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'DATABASE = "database.db"if os.path.exists(DATABASE) == False: db = sqlite3.connect(D..
문제  풀이실행하면 웹은 위와 같이 보인다.별다른 작업이 불가하므로, 소스코드를 확인한다.#!/usr/bin/python3import osfrom flask import Flask, request, render_template, redirect, url_forimport sysapp = Flask(__name__)try: # flag is here! FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]"@app.route("/")def index(): return render_template("index.html")@app.route("/step1", methods=["GET", "POST"])def step1..
문제  풀이처음 접속하면 아래와 같다.여기서 Upload를 위해 placehold로 설정되어 있는 글자를 그대로 입력 후, Upload 를 시행한다.  시행하면 업로드한 메모가 하단 태그로 생성되는 것을 확인할 수 있다. name 파라미터의 값을 my-first-memo 로 넘겨 내부 값을 출력시키는 것을 확인할 수 있다.이를 확인하여, flag.py를 출력해보도록 한다.  flag.py의 내부 정보는 출력되지 않고있다.소스코드를 보고 문제를 확인해보도록 하자#!/usr/bin/env python3import osimport shutilfrom flask import Flask, request, render_template, redirectfrom flag import FLAGAPP = Flask(__..
문제 풀이처음 접속하면 다음과 같다. 문제에 나온 내용대로  /var/www/uploads/flag.php 에 접속하려 했으나, Permission denied가 발생한 것을 볼 수 있다.마찬가지로 hello.json에 접속해보도록 한다. 이번에는 hello.json 이 정상적으로 출력되어있는 것을 볼 수 있다.flag에 대해서는 모종의 로직이 존재하거나, .json 파일만 출력하도록 설정이 있다거나, 유추를 할 수 있다.이제 확인을 위해 파일을 다운받아 분석해본다.  view.phpView위의 코드를 확인해보면, Get 방식으로 file 파라미터를 가져온다.가져올 때, file 내부의 값이 flag 문자열을 포함하고 있을 경우, Permission denied 가 출력되도록 설정되어 있다.  list...
문제여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.CSRF 취약점을 이용해 플래그를 획득하세요.문제 수정 내역2023.07.18 css, html 제공 및 read_url() 코드 일부가 변경되었습니다.  풀이위는 접속하면 나오는 문제 페이지이다.csrf로 접속한다. csrf 페이지는 param= 형태로 이루어져있다.화면단에 표기에서는 script가 *로 치환되어 있는 것을 확인할 수 있다. memo 페이지에서는 memo=hello 로 memo의 변수설정을 추가함에 따라 출력되는 값이 다르다.필자가 memo=hello 를 memo=mymemo로 변경한다면, 출력은 mymemo가 뒤에 덧붙여서 출력된다. notice flag 페이지에서는 Access Denied 가 출력된다. flag 페..
문제할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요!  풀이처음 페이지에 접속하면, 아래와 같은 그림을 확인할 수 있다.10000번 클릭시 flag 값을 얻을 수 있다.우선 소스코드부터 확인한다.id 값인 #jack-target 을 10000번 클릭해야 나오도록 설정되어있다.여기서 counter를 10000으로 지정해도 Flag 값은 출력되지 않는다. $('#jack-target').click 이 10000번 이루어지면 flag 값이 노출되는 것으로 보면 되니, console에서 반복문을 사용해서 노출시킨다.# for 문 반복for(i=0; i코드를 콘솔에 입력하면 정상적으로 Flag 값이 출력되는 것을 확인할 수 있다.
문제특정 Host에 ping 패킷을 보내는 서비스입니다.Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다.  풀이이번문제는 ping 패킷을 보내는 서비스를 확인할 수 있다.확인을 위해 8.8.8.8을 찍어보도록 한다.정상적으로 출력되는 것을 확인할 수 있으며, 이제 input 박스에 우회를 시도한다.cat flag.py 값을 출력해야하므로 8.8.8.8;cat flag.py 를 작성한다.작성했지만 프론트 단에서 형식이 일치하지 않는다는 문구가 발생한다.F12를 눌러 개발자 도구를 확인하면 HTML 코드에 pattern 으로 알파벳 대/소문자, 숫자, 5자리 ~ 20자리 사이로 입력 값 제한으로 받고있다. 이 pattern 값을 지우고 8.8.8.8"cat fl..
grinidia
'Dreamhack' 카테고리의 글 목록 (3 Page)