# 문제링크 : https://dreamhack.io/wargame/challenges/834
문제 파일
웹페이지
흠... 웹페이지가 뭘 의미하는지 잘 모르겠다. 파이썬 코드부터 봐보자.
코드가 그렇게 길지 않다. 살펴보면 flag.txt 파일을 불러와서 읽으려고 시도한다. 그리고 입력받은 값을 가져오는 것 같은데 그 값이 m이랑 일치하면 flag를 불러오는 식인 거 같다. m은 'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+'이라고 한다. 이게 뭘 의미하는 걸까 생각해봤는데 드림핵 페이지 힌트를 살펴보면 정규표현식에 관한 문제라고 한다.
정규표현식은 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어를 말한다. 정규표현식은 엄청 다양한데 이에 대해서는 개인적인 공부가 필연적인 것 같다. 난 https://gungadinn.github.io/data/2019/07/14/RegularExpression/
이 사이트를 참고해서 공부했다.
아무튼 정규표현식을 공부한 후 dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+를 해석해보면 다음과 같다.
- dr: 문자열이 "dr"로 시작
- \w{5,7}: 5에서 7개의 워드 문자 (알파벳, 숫자, 밑줄)가 나오는 부분
- e\d+: 문자열에 "e"가 나오고 그 뒤에 하나 이상의 숫자가 나오는 부분
- am@: 문자열에 "am@"이 나오는 부분
- [a-z]{3,7}: 3에서 7개의 소문자 알파벳이 나오는 부분
- \.\w+: 마지막에는 점 (.)과 하나 이상의 워드 문자가 나오는 부분
위 법칙을 따라서 문자열을 만들어보자.
dr123456e7am@email.com 정도가 될 수 있겠다. 이 문자열을 홈페이지에 넣어보자.
넣기 전에 틀린 문자열을 넣으면 어떻게 되는지 궁금해서 아무거나 넣어보았다.
이렇게 뜬다. 이제 만든 문자열을 넣어보자.
문자열을 넣어봤더니 flag값이 떴다.
문제 해결!
'문제풀이' 카테고리의 다른 글
[Dreamhack] littlevsbig 문제풀이 (0) | 2024.01.12 |
---|---|
[Dreamhack] 🌱 simple-web-request 문제풀이 (0) | 2024.01.10 |
[Dreamhack] Flying Chars 문제풀이 (1) | 2023.11.29 |
[Dreamhack] session 문제풀이 (0) | 2023.11.29 |
[Dreamhack] session-basic 문제풀이 (0) | 2023.11.17 |