본문 바로가기

Web Hacking

(91)
[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..
[Web] CSRF란 무엇인가? CSRF (Cross-Site Request Forgery) csrf는 클라이언트 사이드 취약점으로 교차 사이트 요청 위조 라고 부른다. 즉, 임의 이용자의 권한으로 HTTP 요청을 보내는 것을 말한다. CSRF 동작 HTML태그와 JavaScript 코드를 이용할 수 있다. 1. HTML 태그 👆 img태그를 이용할 수 있다. img태그는 이미지 url에 있는 이미지를 불러오는 태그이므로 이미지를 불러오기 위해선 해당 url에 get 요청을 보내게 된다. 즉, HTTP 요청을 보낼 수 있다. 2. JavaScript window.open("https://example.com/money?send=1000000"); 👆 새 창을 여는 코드나 locatioj.href 등과 같은 코드를 이용하면 원하는 url..
[Dreamhack] XSS-2 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..