php7cmp4re
·
DreamHack/WEB
php7cmp4re http://host3.dreamhack.games:10711/ Index page "7.9"){ if(strlen($input_2) 1){ if($input_2 "74"){ echo "FLAG\n"; echo $flag; echo ""; } else echo "Good try."; } else echo "Good try."; } else echo "Try again."; ..
sql injection bypass WAF
·
DreamHack/WEB
문제 화면이다. 소스코드와 SQL를 하면 봐보자.       import 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 = M..
blind sql injection advanced
·
DreamHack/WEB
나는 많이 어려웠는데 왜 이리 잘하는 사람들이 많은 거야         import osfrom flask import Flask, request, render_template_stringfrom 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..
command-injection-chatgpt
·
DreamHack/WEB
#!/usr/bin/env python3import subprocessfrom flask import Flask, request, render_template, redirectfrom flag import FLAGAPP = 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 =..
error based sql injection
·
DreamHack/WEB
이게 왜 Simple이라는 거지             import 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..
rev-basic-8
·
DreamHack/Reverising
IDA로 파일을 실행시켜 보자.          'Correct'가 출력돼야 하니 sub_14001000을 확인          unsigned __int8 : 0부터 255까지의 값을 갖는 부호 없는 8비트 정수 a1은 한정적이라고 할 수 있다. '(-5 * *(_byte *)(a1+i) =' a1[i] 의 값을 -5 곱한 후 byte_140003000[i] 와 비교          byte_140003000 배열이다. 종합적으로 uint8_t 은 0~255까지의 값 byte_140003000 배열 값들도 많지가 않다 식은 그대로 가되 unsigned 8-bit로 처리해주고 비교하면 된다. result = (-5 * a1) % 256 수식 : -5 * a1 연산 후에 256으로 나눈 나머지 값들을 쓴다..
simple_sqli_chatgpt
·
DreamHack/WEB
#!/usr/bin/python3from flask import Flask, request, render_template, gimport sqlite3import osimport binasciiapp = 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 ch..
rev-basic-5
·
DreamHack/Reverising
파일을 받아 IDA로 보자.                'Corrcet' 출력을 위해 sub_14001000를 살펴보자.                  수식과 byte_140003000 배열값들을 비교하여 답을 추출하는 문제이다. 식을 정리해보자. if ( *(unsigned __int8 *)(a1 + i + 1) + *(unsigned __int8 *)(a1 + i)!= byte_140003000 [i] )  형변환생략 (a1+i+1)+(a1+i) == byte_140003000[i] (a [i]+1)+(a1[i]) = byte_140003000 [i] byte_140003000 [i]에 대한 배열값들을 보자.    예시(a1[0]+1) + (a1[0]) = byte_140003000[0] = 0xAD..
rev-basic-6
·
DreamHack/Reverising
문제를 다운로드하여 IDA에서 보자                          디컴파일링을 하고 'Corrcet' 를 출력시키기 위해 'sub_140001000' 한번 확인해 보자.                    반복문을 0x12 만큼 하고 byte_140003020에 배열 값과 byte_140003000 배열값을 비교해서 맞는 값들만 출력하는 식인듯하다.              byte_140003020의 배열값들이다.             byte_140003000의 배열값들이다. 식과  배열값들을 구했으니 python을 이용해서 비교해보면...           정상적으로 작동한다. 이번 문제는 DreamHack 치고는 쉬운 편이었다.
php-1
·
DreamHack/WEB
LFI 취약점을 이용하라고 한다. LFI(Local File Inclusion) 취약점은 공격자가 서버의 파일 시스템에 접근하여 서버 내의 파일을 포함하거나 읽을 수 있는 문제를 뜻한다. 주로 파일경로를 이용한 취약점이나PHP Wrapper 에 대한 취약점을 보여주기도 한다.Wrapper용도예시expect://원격명령어 실행file_get_contents('expect://ls');php://filter파일의 내용을 변환된 형태로 읽거나 쓰기php://filter/read=convert.base64-encode/resource=/etc/passwdzip://zip 파일 내 특정 파일을 직접 읽기file_get_contents('zip://path/to/archive.zip#file.txt');  문제 사..
XSS Filtering Bypass
·
DreamHack/WEB
XSS에 대한 필터링을 우회하라는 거 같다.                 3개의 페이지에 존재               /vuln 에 대한 페이지 로고를 못 불러오는 모습이다. XSS를 실행시키는 페이지인 거 같다.   @app.route("/vuln")def vuln(): param = request.args.get("param", "") # 쿼리 파라미터에서 'param' 값 가져오기 param = xss_filter(param) # XSS 필터 적용 return param # 필터링된 파라미터 반환 xss_filter를 적용시켜 param를 return 시킨다.   def xss_filter(text): # 필터링할 키워드 목록 _filter = ["script", ..
proxy-1
·
DreamHack/WEB
#!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_forimport socketapp = Flask(__name__)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'@app.route('/')def index(): return render_template('index.html')@app.route('/socket', methods=['GET', 'POST'])def login(): if request.method == 'GET': return render_template('..