Dreamhack 9

[Dreamhack] Addition calculator 풀이

덧셈 식을 입력하면 계산 결과를 출력하는 웹 서비스란다. flag는 ./flag.txt 에 있다고 한다.  문제 페이지이다. 입력을 받는다. 1+2 를 입력하게 되면? 소스코드를 보자#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport subprocessimport reapp = Flask(__name__)def filter(formula): w_list = list(string.ascii_lowercase + string.ascii_uppercase + string.digits) w_list.extend([" ", ".", "(", ")", "+"]) if re.search("(syst..

Dreamhack 2024.05.26

[Dreamhack] what-is-my-ip 풀이

How are they aware of us even behind the wall..?어떻게 그들이 우리를 알고 있냐 벽 뒤에 있음에도..(?) 영어못함 그들이 우리 ip를 어떻게 알고 있냐 라고 물어보는 것 같은 그냥 제 생각이구요Flag는 /flag에 있다고 하네요~ 문제 페이지이다. 들어가면 제 ip가 출력되는 모습을 볼 수 있다. 암튼 소스 분석 ㄱㄱ #!/usr/bin/python3import osfrom subprocess import run, TimeoutExpiredfrom flask import Flask, request, render_templateapp = Flask(__name__)app.secret_key = os.urandom(64)@app.route('/')def flag()..

Dreamhack 2024.05.23

[Dreamhack] simple_sqli_chatgpt 풀이

simple_sqli_chatgpt이다. GPT센세와 함께 풀어보라고 한다..! 하지만 문제는 고작 레벨 1.. 혼자 해결해보자  문제 페이지이다. Login이 있다. 나머지 About, Contact는 클릭해봐도 URL에만 #about, #contact 이 추가될 뿐 반응이 없다. login 페이지이다.  input으로 userlevel을 받는다.  소스코드 ㄱㄱ#!/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',..

Dreamhack 2024.04.03

[Dreamhack] BypassIF 풀이

BypassIF이다. 제목만 봐서는 IF문을 바이패스 해야될 것 같다. 문제 페이지이다. 맞는 key를 submit 하면 될 것 같다. 아무 값이나 넣어봤는데 아무 반응이 없다. 감이 안잡히므로 소스코드를 보도록 하자. #!/usr/bin/env python3 import subprocess from flask import Flask, request, render_template, redirect, url_for import string import os import hashlib app = Flask(__name__) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" KEY = hashlib.md5(FLAG.encode())...

Dreamhack 2024.04.03

[Dreamhack] XSS Filtering Bypass Advanced 풀이

이번엔 XSS Filtering Bypass가 Advanced 돼서 돌아왔다..! 무려(?) 3단계다.. 뭐가 달라졌는지 알아보자 저번 문제와 같이 3개의 페이지가 있다. /vuln 페이지이다. 스크립트 사용이 가능하다는 것을 보여준다. @app.route("/vuln") def vuln(): param = request.args.get("param", "") param = xss_filter(param) return param /vuln 소스코드다. param의 파라미터 값을 받아서 xss_filter에 넘겨준다. def xss_filter(text): _filter = ["script", "on", "javascript"] for f in _filter: if f in text.lower(): ret..

Dreamhack 2024.03.24

[Dreamhack] XSS Filtering Bypass 풀이

오늘은 XSS Filtering Bypass를 풀어보자. 몇 달 전에 풀었지만 기억이 가물가물해서 다시 풀어볼거다. 문제 페이지이다. vuln(xss) page와 memo, flag 3개의 페이지가 따로 있다. vuln(xss) page를 접속하게 되면 get으로 파라미터에 를 사용했고, 실제 동작하는 모습이다. img src 취약점이 있다 라는 것을 보여주려고 vuln 페이지를 만들어 둔 것 같다. memo 페이지를 들어가보자 memo 페이지에서는 hello가 출력되어 있는 모습이다. url을 보니 memo?memo=hello 이다. memo= 뒤의 문자열을 메모해서 보여주는 것 같다. 아니나 다를까 GET으로 cert라는 문자열을 보내니 'cert' 라는 문자열이 입력된 모습이다. 마지막으로 flag..

Dreamhack 2024.03.20

[Dreamhack] sql injection bypass WAF Advanced 풀이

풀이 다 썼는데 임시저장 된 게 다 날아갔다.. 화가 머리끝까지 나지만 임시저장을 믿은 내 잘못이다.. 앞으로는 저장을 해놓고 수정을 하도록 하자 문제를 다시 한 번 보자..^^ 전에 풀이했던 sql injection bypass WAF의 패치된 문제란다. (+ Advanced) SELECT * FROM user WHERE uid='{uid}'; 에서 내가 입력할 수 있는 부분은 {uid} 부분이다. 이 부분을 내가 어떻게 지지고 볶아서 flag를 추출하면 된다. 소스코드를 보자 keywords = ['union', 'select', 'from', 'and', 'or', 'admin', ' ', '*', '/', '\n', '\r', '\t', '\x0b', '\x0c', '-', '+'] def che..

Dreamhack 2024.03.20

[Dreamhack] sql injection bypass WAF 풀이

오랜만에 워게임을 풀어보았다. 화이트햇 스쿨 준비한다고 전역하고도 마음껏 공부할 시간이 없었다(는 구라고 배그하느라 바빴음) 복학하면 꼭 공부에 올인하겠다는 다짐을 또 해본다. 오늘의 문제는 웹해킹 - 서버 사이드 에 붙어있는 문제인 SQL injection bypass WAF이다. uid를 받고 쿼리에 집어넣고 결과를 출력해 주는 것 같다. 1을 넣으면 1이 나오고, guest를 넣으면 guest가 나온다..(?) 소스코드를 보자. GET으로 입력값을 받아서 check_WAF라는 함수에 넣어서 union, select 등의 키워드를 필터링한다. SQL 파일을 열어보니 user라는 테이블에 여러 uid들이 있고, admin의 upw가 FLAG인 것을 알 수 있다. 어떻게 페이로드를 짤 지 생각해보자 우선..

Dreamhack 2024.03.02

[Dreamhack] blind sql injection advanced 풀이

오늘은 웹해킹 로드맵 서버 사이드에 붙어있는 문제인blind sql injection advanced 를 풀이해보겠습니다. 복습 겸..어찌어찌 풀긴 풀었는데 삽질을 하루종일 해서..  풀이 ㄱㄱ SQL 구문이 나와있고 uid 에 값을 넣어서 submit 하면? 드림핵에서 문제 파일을 줬으니 파일 분석을 해보자 1. GET 으로 uid의 값을 받음2. 받은 uid 값으로 SQL 쿼리에 넣고 실행3. 결과 반환으로 이루어져 있다.   SQL 파일이다. admin, guest, test 3개의 계정이 만들어져있다. FLAG가 admin의 upw이므로 저걸 찾아내면 되겠다.   app.py의 12번 줄부터 결과 반환에 관한 코드가 있는데,get으로 uid를 받아서 실행시킨 결과가 1개일 때,{uid} exist..

Dreamhack 2024.02.08