분류 전체보기 (156) 썸네일형 리스트형 [Dreamhack] CSP Bypass 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) nonce = os.urandom(16).hex() try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}): cook.. [Draemhack] XSS Filtering Bypass Advanced 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.. [Dreamhack] XSS Filtering Bypass 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.. [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 요청 결과 허용되지 않은 메소드.. 정규표현식 (Regex) 정규 표현식이란 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 다루는데 사용된다. 많은 프로그래밍 언어 문자의 검색과 치황을 위헤 지원한다. 정규 표현식 메타 문자와 정규 문자로 이루어 진다. 메타 문자란 단순 문자가 아닌 다른 용도로 사용되는 문자를 말한다. 정규 문자는 말 그대로 그냥 문자이다. . ^ $ * + ? {} [] \ | () 👆 정규 표현식은 다음과 같은 메타 문자를 사용하며 의미는 아래와 같다. 정규 표현식 의미 .x x 문자 앞에 임의의 어떤 문자가 존재하며 x 문자로 끝남을 의미한다. ^x x 문자로 시작함을 의미한다. x$ x 문자로 끝남을 의미한다. x* x가 0번 이상 반복됨을 의미한다. x+ x가 1번 이상 반복됨을 의미한다. x? x가 있어도 되고 없어도 됨을 의미한.. Base64 인코딩이란? 인코딩이란? 인코딩이란 정보의 표준이나 형식을 표준화, 보안, 처리 속도 향상 등의 이유로 다른 형태의 표준이나 형식으로 바꾸는 것을 말한다. Base64 인코딩이란? Base64 인코딩은 바이너리 데이터를 텍스트 형태로 바꾸는 것을 말한다. Base64는 말 그대로 64진법을 이용하며 '+'와 '/'를 포함하여 총 64개의 영문자로 이루어져 있다. 👆 위의 테이블을 참조한다. Base64 인코딩 방법 일반적으로 컴퓨터의 데이터나 아스키 문자들은 8bit씩 묶여 존재한다. 그러나 baee64 인코딩은 6bits씩 끊어서 묶는다. 따라서 혼란이 오지 않도록 8비트와 6비트의 최소공배수인 24bits 즉, 3바이트 씩 끊어서 인코딩한다. 문제는 모든 데이터들이 3바이트로 나누어 떨어지지는 않는다. 이 문제는.. [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... 이전 1 ··· 9 10 11 12 13 14 15 ··· 20 다음