dreamhack(57)
-
sql injection bypass WAF Advanced 풀이
app.pyimport osfrom flask import Flask, requestfrom flask_mysqldb import MySQLapp = Flask(__name__)app.config['MYSQL_HOST'] = os.environ.get('MYSQL_HOST', 'localhost')app.config['MYSQL_USER'] = os.environ.get('MYSQL_USER', 'user')app.config['MYSQL_PASSWORD'] = os.environ.get('MYSQL_PASSWORD', 'pass')app.config['MYSQL_DB'] = os.environ.get('MYSQL_DB', 'users')mysql = MySQL(app)template ='''SELECT..
2024.04.25 -
Robot Only 풀이
#!/usr/bin/env python3 import random import signal import sys MENU_GAMBLE = 1 MENU_VERIFY = 2 MENU_FLAG = 3 MENU_LEAVE = 4 money = 500 verified = False def show_menu(): print('=======================================') print('1. go to gamble') print('2. verify you\'re a robot') print('3. buy flag') print('4. leave') def get_randn(): return random.randint(0, 0xfffffffe) def gamble(): global money ..
2023.09.05 -
[CodeEngn] Malware L08 풀이
문제에서 제공한 Flow를 확인해 보니, ".inf"라는 주석이 달려있는 것을 확인할 수 있었습니다. 뭔진 모르겠지만, 형태를 보니 확장자 인 것 같아 구글링을 해봤습니다. https://learn.microsoft.com/ko-kr/windows-hardware/drivers/install/overview-of-inf-files INF 파일 개요 - Windows drivers INF 파일 개요 learn.microsoft.com 드라이버 패키지의 텍스트 파일이라네요 :D 이 함수에서 False로 빠지면, "Install" 주석이 달린 함수에 도착하게 됩니다. 여기서 흐름을 타고 다른 함수들로 이동하다보면, 아래와 같은 함수에 도달합니다. 이 함수의 두 번째 줄을 보면 ShellExecuteExA를 c..
2023.08.30 -
crt rsa 풀이
from Crypto.Util.number import * from sympy import nextprime flag = b'DH{?????????????????????????????????????????}' q = getPrime(1024) p = nextprime(q + 1) N = p * q while True: e = getPrime(256) if GCD(e, (p - 1) * (q - 1)) == 1: d = inverse(e, (p - 1) * (q - 1)) break dp = d % (p - 1) dq = d % (q - 1) qinv = inverse(q, p) print(f'N = {N}') print(f'dp = {dp}') print(f'dq = {dq}') print(f'qinv ..
2023.04.24 -
crawling 풀이
#app.py import socket import requests import ipaddress from urllib.parse import urlparse from flask import Flask, request, render_template app = Flask(__name__) app.flag = '__FLAG__' def lookup(url): try: return socket.gethostbyname(url) except: return False def check_global(ip): try: return (ipaddress.ip_address(ip)).is_global except: return False def check_get(url): ip = lookup(urlparse(url).n..
2023.04.23 -
Long Sleep 풀이
문제 내용을 보니 sleep() 함수 때문에 프로그램이 끝나지 않는 이슈가 있는 것 같습니다. 우선 prob 파일을 IDA로 열어봤습니다. sub_1411() 함수에서의 처리가 끝난 후 플래그를 출력하는 형식이니, 흐름을 따라가 보겠습니다. 계속 함수를 타고 들어가던 중.... sys_nanosleep() 함수를 발견했습니다! 이 함수 때문에 FLAG 생성이 도중에 멈춘 것으로 추측됩니다. 이 부분에 코드패치를 해주면 문제가 풀릴 듯합니다. :D
2023.04.21