DreamHack/web
2023.07.17
문제정보 더보기 Exercise: File Vulnerability Advanced for Linux에서 실습하는 문제입니다. Keypoint 더보기 환경변수파일 main.py 더보기 import os, subprocess from functools import wraps from flask import Flask, request app = Flask(__name__) API_KEY = os.environ.get('API_KEY', None) def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KEY and apikey: if apikey == API_..
DreamHack/web
2023.07.16
문제정보 더보기 파일 업로드 기능을 악용하여 서버의 권한을 획득하세요 ! Keypoint 더보기 htaccess 메인화면 이 문제를 풀려면 .htaccess 파일이 뭔지 알아야한다. .htaccess 파일 간단히 설명하면 디렉토리에 대한 설정 옵션 파일이다. 해당 파일을 활용하여 파일 확장자를 설정할 수 있고, 이를 이용하면 ".abc" 라는 확장자를 ".php" 확장자로 인식할게 할 수 있다. 따라서 .htaccess 파일을 이용하여 웹쉘을 업로드 해보려고 한다. 내가 작성한 .htaccess 파일은 다음과 같다. .htaccess AddType application/x-httpd-php .abc 간단하게 ".txt " 로 해도 되지만 너무 평범해서 ".abc "로 하였다. 다음으로 웹쉘 코드를 작성하..
DreamHack/web
2023.07.16
문제정보 더보기 Exercise: CSRF Advanced에서 실습하는 문제입니다. Keypoint 더보기 MD5 해시 app.py 더보기 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium.webdriver.common.by import By from selenium import webdriver from hashlib import md5 import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read..
DreamHack/web
2023.07.15
문제정보 더보기 드림이가 선물을 준비하려하는데 돈이 없네요… 그럼 무에서 유를 창조해볼까요? Note : 음수의 값이 허용된다면 그 행동의 반대를 하게 됩니다. Keypoint 더보기 코드 분석(허점 파악) app.py 더보기 from flask import Flask, session, redirect, url_for, request, render_template from threading import Thread from util import get_price, deposit, liquidate app = Flask(__name__) app.secret_key = "[REDACTED]" @app.route("/", methods=['GET', 'POST']) def main(): if request.m..
DreamHack/web
2023.07.15
문제정보 더보기 특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. chatGPT와 함께 풀어보세요! Keypoint 더보기 Basic Command Injection (논리 연산자) app.py 더보기 #!/usr/bin/env python3 import subprocess from flask import Flask, request, render_template, redirect from flag import FLAG APP = Flask(__name__) @APP.route('/') def index(): return render_template('index.html') @APP.route('/ping'..
DreamHack/web
2023.07.15
더보기 문제정보 어딘가 이상한 로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. chatGPT와 함께 풀어보세요! Keypoint 더보기 Basic SQL Injection app.py 더보기 #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' DATA..