Web/Wargame

[Dreamhack] ex-reg-ex

와븨 2023. 8. 27. 22:13

문제

 

코드 분석

@app.route("/", methods = ["GET", "POST"])
def index():
    input_val = ""
    if request.method == "POST":
        input_val = request.form.get("input_val", "")
        m = re.match(r'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+', input_val)
        if m:
            return render_template("index.html", pre_txt=input_val, flag=FLAG)
    return render_template("index.html", pre_txt=input_val, flag='?')
  • input_val에 입력된 값을 input_val에 저장
  • 정규표현식 : dr → 아무 문자나 5~7개(\w{5,7}) → e → 숫자(\d+) → am@ → a~z의 문자 중 3~7개 ([a-z]{3,7}) → . → 아무 문자 하나 이상 (\w+)
  • 정규표현식을 만족하는 input_val(입력값)을 찾아야함

 


풀이

index 페이지를 먼저 살펴보자

index 페이지의 모습

 

 

index_box에 입력한 문자열을 출력한다.

 

 

이제 플래그를 찾기 위해 정규표현식을 맞춰서 input_val을 입력하면

플래그를 찾을 수 있다.

 

 

정답