xmi1e-vir.log

[Dreamhack] wargame 'ex-reg-ex' write-up 본문

WARGAME/WEB

[Dreamhack] wargame 'ex-reg-ex' write-up

eunee22 2025. 9. 7. 23:09
🌱 Biginner
문제링크
문제에서 요구하는 형식의 문자열을 입력하여 플래그를 획득하세요.
플래그는 flag.txt 파일과 FLAG 변수에 있습니다.
플래그 형식은 DH{...} 입니다.

 

📌문제 파악

  • 주어진 정규표현식에 부합하는 값을 입력하면 flag를 얻을 수 있다.
@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='?')

 

📌문제 풀이

주어진 정규표현식은 아래와 같다

r'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+'
  • dr: "dr"로 시작
  • \w{5,7}: 5~7개의 알파벳, 숫자, 또는 밑줄(_)
  • e: "e"가 와야함
  • \d+: 하나 이상의 숫자
  • am: "am"이 와야함
  • @: "@" 기호가 와야함
  • [a-z]{3,7}: 3~7개의 소문자 알파벳
  • .: "." (점)이 와야함
  • \w+: 하나 이상의 알파벳, 숫자, 또는 밑줄(_)

나는 위 조건에 부합하는 임의의 값을 작성했다.

dr1234_e2am@naver.com

 

입력하면 손쉽게 flag를 얻을 수 있다.