#!/usr/bin/python3from flask import Flask, request, render_templatefrom selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)nonce = os.urandom(16).hex()try: FLAG = open("./flag.txt", "r").read()except: FLAG = "[**FLAG**]"def read_url(url, cookie={"name": "name", "value": "value"}): cookie..
Web Hacking/DreamHack
CSRF 문제이다. XSS만 풀다보니 CSRF에 대한 지식은 별로 없어서 writeup을 작성하려 한다.#!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_forfrom selenium.webdriver.common.by import Byfrom selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom hashlib import md5import urllibimport osapp = Flask(__name__)app.secret_key = os.urandom(32)try: FLAG = o..
CSP BYPASS 문제이다.드림핵과 웹해킹.kr 두 문제를 풀어보니 거의 비슷한 문제여서 한번에 writeup을 작성하려 한다.먼저 본격적인 풀이 전에 CSP에 대해 간단히 알아보자면 XSS를 방지하기 위해 태그들에 여러 규칙을 정의해 놓은걸 뜻한다.뭐 예를 들어 1. noncenonce를 지정해주면 ' return f''memo_text = ""@app.route("/memo")def memo(): global memo_text text = request.args.get("memo", "") memo_text += text + "\n" return render_template("memo.html", memo=memo_text, nonce=nonce)app.run(ho..
admin권한을 가진 사용자로 로그인하면 되는 문제이다.#!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_for, session, gimport sqlite3import hashlibimport osimport time, randomapp = Flask(__name__)app.secret_key = os.urandom(32)DATABASE = "database.db"userLevel = { 0 : 'guest', 1 : 'admin'}MAXRESETCOUNT = 5try: FLAG = open('./flag.txt', 'r').read()except: FLAG..
보호되어 있는 글입니다.