본문 바로가기

Web Hacking/Dreamhack

(52)
[Dreamhack] blind-command write up - 티스토리 #!/usr/bin/env python3 from flask import Flask, request import os app = Flask(__name__) @app.route('/' , methods=['GET']) def index(): cmd = request.args.get('cmd', '') if not cmd: return "?cmd=[cmd]" if request.method == 'GET': '' else: os.system(cmd) return cmd app.run(host='0.0.0.0', port=8000) GET 메소드가 아닐 경우 cmd로 넘어온 값을 system함수가 실행시킨다. cat flag를 하면 flag를 읽을 수 있을 거 같다. POST 요청 결과 허용되지 않은 메소드..
[Dreamhack] web-ssrf write up - 티스토리 #!/usr/bin/python3 from flask import ( Flask, request, render_template ) import http.server import threading import requests import os, random, base64 from urllib.parse import urlparse app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() # Flag is here!! except: FLAG = "[**FLAG**]" @app.route("/") def index(): return render_template("index.html") @app...
[Dreamhack] file-download-1 write up - 티스토리 #!/usr/bin/env python3 import os import shutil from flask import Flask, request, render_template, redirect from flag import FLAG APP = Flask(__name__) UPLOAD_DIR = 'uploads' @APP.route('/') def index(): files = os.listdir(UPLOAD_DIR) return render_template('index.html', files=files) @APP.route('/upload', methods=['GET', 'POST']) def upload_memo(): if request.method == 'POST': filename = request...
[Draemhack] image-storage write up - 티스토리 Image Storage Home List Upload 파일 업로드 위 코드는 파일 저장 서비스에 대한 코드이며 파일 확장자에 대한 필터링이 없으므로 웹쉘과 같은 악성 파일을 업로드 할 수가 있다. .php 파일이 업로드 된 것을 볼 수 있다. 해당 경로에 접근하여 쉘을 실행시켜 flag를 얻을 수 있다.
[Dreamhack] command-injection write up - 티스토리 #!/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', methods=['GET', 'POST']) def ping(): if request.method == 'POST': host = request.form.get('host') cmd = f'ping -c 3 "{host}"' try: output = subprocess.check_output(['/..
[Dreamhack] simple_sqli write up - 티스토리 #!/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**]' DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpassword char..
[Dreamhack] csrf-2 write up - 티스토리 #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for from selenium import webdriver from selenium.webdriver.chrome.service import Service import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" users = { 'guest': 'guest', 'admin': FLAG } session_storage =..
[Dreamhack] csrf-1 write up - 티스토리 #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver from selenium.webdriver.chrome.service import Service import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cookie.update({"domain": "127.0.0..