728x90
문제 설명
리눅스 명령어를 실행하는 웹 서비스가 작동하고 있습니다.
해당 웹 서비스의 코드가 첨부파일로 주어집니다.
flag.txt 파일을 찾아 출력하여 플래그를 획득하세요!
플래그 형식은 DH{...} 입니다.
문제 풀이
먼저 문제 코드를 살펴보자.

코드는 별거 없고, user_input안에 flag가 들어가 있으면 No!를 출력한다.
그럼 일단 입력창 안에 flag를 그대로 적는 것은 통하지 않을 것이다.

ls를 입력했더니, 눈에 띄는 hint.txt 파일이 존재한다.
당장 hint 파일을 읽어보자.

flag.txt 파일이 어디에 존재하는지 알려준다.
이제 저 경로를 타서 flag 파일을 읽어내기만 하면 문제는 해결될 것이다.

cat ./dream/hack/hello/flag.txt 로 입력했더니 당연히 No! 가 출력된다.
flag를 입력하지 않고 flag 파일을 읽기 위해서는 Wildcard 명령어를 사용해야한다.
리눅스 Wildcard는 검색에서 문자 클래스를 대체할 수 있는 기호다.
- * -> 매칭되는 모든 문자열을 찾아주는 명령어이다.
- ls * -> 현재 디렉터리에 있는 모든 파일을 list를 출력
- ls *.py -> 현재 디렉터리에 있는 .py 파일 list를 출력 // aa.py, abcd.py 등
- ls a* -> 현재 디렉터리에 있는 a로 시작하는 파일 list를 출력 // a1234, aaaa99 등
- ? -> 매칭되는 모든 문자를 찾아주는 명령어이다. ?에 들어가는 문자를 알지 못하더라도 원하는 내용을 출력하거나 삭제할 수 있다.
- ls a? // a1, a2, a3 등
- ls ?abc? // 1abc2, 2abcp 등
- ls ???? // abcd, 1234 등
- [] -> [] 안에 있는 문자들의 패턴에 일치하는 것을 찾아주는 명령어이다. [1-9] 이런식으로 넣게 되면, 1부터 9까지의 숫자가 있는 파일을 리스트업해준다.

와일드카드를 활용하여 flag를 입력하면 된다.
cat ./dream/hack/hello/fl?g.txt 를 입력하면, flag가 출력된다.
'모의해킹 > Dreamhack Wargame' 카테고리의 다른 글
| pathtraversal 문제 풀이 (9) | 2025.05.15 |
|---|---|
| welcome 문제 풀이 (4) | 2025.05.13 |
| 64se64 문제 풀이 (0) | 2025.04.30 |
| Exercise: Welcome-Beginners 문제풀이 (0) | 2025.04.29 |
| Carve party 문제풀이 (0) | 2025.04.25 |