https://dreamhack.io/wargame/challenges/834
생성된 웹 서버에 접속하면 다음 웹이 나온다
여기서 어떤 텍스트를 입력해야 Flag를 주는것 같은데 다음으로 문제 파일을 살펴보자
입력받은 문자열을 input_val에 저장하고 그것을 정규식과 매치한 결과 m값이 True이면 플래그를 반환하고, 옳지않으면 ?를 반환해 출력시키는 코드임을 볼 수 있다
이제 저 매치시킬 정규식을 해석해 매치할 때 참이 되게하는 문자열을 작성해야한다
\w
: 임의의 문자 영문 대소문자 또는 언더스코어(_)
와 매치한다
{5,7}
: 앞에 나온 문자가 5회 이상, 7회 이하 개수만큼 있으면 매치한다
\d
: 임의의 숫자 (0-9)와 매치한다
+
: 앞에 나온 문자나 숫자가 1개 이상 존재하면 매치한다
[a-z]
: 영소문자와 매치한다
\.
: .
은 모든 문자와 매치하는 기호를 의미하는데 이런 기호 앞에 \
를 추가하면 escape의 의미로 '.' 이라는 문자열을 사용하겠다는 의미이다.
위의 정보를 토대로 모두 매치할 수 있는 문자열을 생성해보면
drOOOOOe9am@hack.c
와 같이 작성할 수 있고, 이것을 웹의 입력으로 주면 플래그가 나오게 된다!