<문제>
<풀이>
1. 사이트 및 코드 확인
문제 사이트에 접속하면 처음으로 보이는 페이지다.
입력란이 있고, 그 아래에 Input 값과 Flag를 출력하는 박스가 있다.
입력란에 임의로 'a'를 입력했더니 위와 같은 결과가 나왔다.
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='?')
코드를 확인해보면 입력한 값이 'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+' 라는 정규표현식과 일치하면
flag에 FLAG 값을 return하고 정규표현식과 같지 않으면 flag에 ?를 return 하는 것을 확인할 수 있다.
2. 페이로드 생성
'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+'
위의 정규표현식을 해석해보면,
dr : 문자 "dr"
/w{5,7} : 5자 이상 7자 이하의 알파벳 또는 숫자
e : 문자 "e"
/d+ : 1개 이상의 숫자
am : 문자 "am"
@ : 문자 "@"
[a-z]{3,7} : 3자 이상 7자 이하의 소문자 알파벳
\. : 문자 "."
/w+ : 1개 이상의 알파벳 또는 숫자
해석한 정규표현식을 만족하는 문자열로는
dr12345e123am@example.com
dr11111e1am@inter.com
등이 있다.
3. FLAG 획득
페이로드를 입력했다.
FLAG가 출력되었다.
'드림핵' 카테고리의 다른 글
[드림핵 워게임] simple_sqli_chatgpt (0) | 2023.08.11 |
---|---|
[드림핵 워게임] 🌱 simple-web-request (0) | 2023.08.09 |
[드림핵 워게임] Flying Chars (0) | 2023.08.09 |
[드림핵 워게임] phpreg (0) | 2023.08.08 |
[드림핵 워게임] cg-simple_sqli (0) | 2023.08.08 |