학회_공부해요/워게임

[Dreamhack] Write up - ex-reg-ex 풀이

yenas0 2023. 11. 28. 03:17
반응형

 


제공된 링크로 들어가면 위처럼 뜬다.

 

 

아마 어떤값을 입력해서 flag가 뜨게 하는 것 같다. 문제에서 제공하는 파이썬 파일을 열어보았다.

 

 

 

    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)

코드를 보니 m이 입력되면 flag를 얻는 것 같은데 저 부분을 모르겠다.

 

 

 

검색해보고 챗지피티랑 대화도 좀 해봄

 

re.match()함수는 정규 표현식 패턴과 문자열이 매치되는지 확인하는데 사용된다고 한다.

if문에서 정규 표현식에 매치되었는지 확인하고 매치된 결과가 있으면 flag변수에 값을 전달한다고 한다.

 

 

즉, 이 식을 해석하는게 문제인 것 같다.

m = re.match(r'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+', input_val)
- dr: 문자열이 "dr"로 시작 

- \w{5, 7}: 5에서 7개의 "단어"문자(알파벳, 숫자 밑줄)이 온다.

- e: 문자열에 "e"가 온다.

- \d+: 하나 이상의 숫자가 온다

- am@: "am@"의 문자열이 온다.

- [a-z]{3, 7}: 3에서 7개의 소문자 알파벳 문자가 온다.

- \.\w+: 점으로 시작하는 문자열이 오고 이어서 하나 이상의 "단어"문자(알파벳, 숫자, 밑줄)가 온다.

 

 

 

위 조건에 맞게만 입력하면 flag가 나올 것 같다.

 

dr12345e6am@abc.1   이런식으로..

조건에 맞게 아무렇게나 설정하고 입력해보았다.

 

 

flag가 나왔다.~

반응형