본문 바로가기

드림핵

드림핵_session-basic #!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_forapp = Flask(__name__)try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG}# this is our session storagesession_storage = {}@app.route('/')def index(): session_id = request.cookies.get('sessionid', None.. 더보기
드림핵_Mango 보호되어 있는 글입니다. 더보기
드림핵_login-1 보호되어 있는 글입니다. 더보기
Root-me XSS 보호되어 있는 글입니다. 더보기
드림핵_DOM XSS 보호되어 있는 글입니다. 더보기
weblog-1 주어진 코드와 로그를 분석해서 주어진 질문에 해당하는 답을 찾는거라고 한다.  문제 서버에 들어가니 퀴즈를 풀어야 한다.    로그 파일을 봤다.     일단 pw를 찾아야 하니까 password를 검색해봤다.password를 내리다가 username과 password가 같이 등장하는 부분이 나왔다. 여기서 유의미한 정보를 얻을 수 있을 것 같다.board.php에서 (username+0x3a+password)와 같은 방식으로 문자열을 맞추는 식으로 sql쿼리를 보낸다. 응답 패킷의 길이를 기준으로 쿼리가 참일 때 길이가 1192이고 거짓일 때 길이는 841인 것을 확인할 수 있다.자 이제 1192를 다시 필터링해서 아스키 값들을 모았다.97,100,109,105,110,58,84,104,49,115,9.. 더보기
sql injection bypass WAF 문제에 별다른 조건이 없었다. 바로 서버를 생성해서 들어갔고 문제 파일도 다운 받았다. 서버를 들어가니 이와 같이 뜨는 것을 확인할 수 있었다.    문제파일 코드를 봤다.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.con.. 더보기
드림핵 error based sql injection https://dreamhack.io/wargame/challenges/412  문제는 이와 같다. 문제 파일을 다운 받고 열어봤다.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'] .. 더보기