web웹/Dreamhack wargame
-
[Dreamhack] web-ssrfweb웹/Dreamhack wargame 2022. 8. 16. 08:19
@app.route("/img_viewer", methods=["GET", "POST"]) def img_viewer(): if request.method == "GET": return render_template("img_viewer.html") elif request.method == "POST": url = request.form.get("url", "") # url 입력 urlp = urlparse(url) if url[0] == "/": url = "http://localhost:8000" + url # url에 host와 port를 명시하지 않을 경우 localhost:8000으로 설정 elif ("localhost" in urlp.netloc) or ("127.0.0.1" in urlp.ne..
-
[Dreamhack] sessionweb웹/Dreamhack wargame 2022. 7. 26. 13:27
이번에도 로드맵을 참고해서 풀어봤다. Background: Cookie & Session | Dreamhack 로그인 | Dreamhack dreamhack.io 문제에서 제공하는 app.py의 일부분이다. 세션아이디가 할당되는 부분을 보면, hex값으로 설정되는 것으로 추측해볼 수 있다. def login(): if request.method == 'GET': return render_template('login.html') elif request.method == 'POST': username = request.form.get('username') password = request.form.get('password') try: pw = users[username] except: return '' if..
-
[Dreamhack] session-basicweb웹/Dreamhack wargame 2022. 7. 26. 10:09
@app.route('/') def index(): session_id = request.cookies.get('sessionid', None) #세션아이디 저장 try: # get username from session_storage username = session_storage[session_id] # session_storage의 key 중 session_id가 존재하면 username에 session_storage[session_id]를 저장 except KeyError: return render_template('index.html') return render_template('index.html', text=f'Hello {username}, {"flag is " + FLAG if usern..
-
[Dreamhack] error based sql injection(+문제해결 완)web웹/Dreamhack wargame 2022. 7. 14. 22:29
init.sql 파일 위 sql문으로 추측할 수 있는 것은 'user'이라는 이름의 테이블이있고 각 튜플은 다음과 같은 값으로 채워진다는 것이다. idx uid upw admin DH{**FLAG**} guest guest test test app.py 이용자 입력값이 별다른 검사 없이 SQL 쿼리에 포함되어 SQL Injection 취약점이 발생함도 알 수 있었다. error based sql injection은 문법적 오류가 아닌 논리적 오류가 포함된 쿼리를 작성해야 가능한 공격이다. 문법오류는 아예 컴파일이 되지 않을 수 있기 때문이다. 다음은 문법오류를 발생시켰을 때의 결과입니다. 고민을 하다가 드림핵 로드맵의 도움을 받기로 하였다. 나는 다음을 참고하여 문제를 풀어보았다. [WHA] Exploi..