문제 설명
리눅스 명령어를 실행하는 웹 서비스가 작동하고 있습니다.
해당 웹 서비스의 코드가 첨부파일로 주어집니다.
flag.txt 파일을 찾아 출력하여 플래그를 획득하세요!
플래그 형식은 DH{...} 입니다.
코드부터 살펴봤다.
보면 user_input이 리눅스 명령어로 실행되는 것을 확인할 수 있다.
그래서 사이트에 들어가서 ls를 먼저 쳐봤다. 파일 목록들이 나오는데, 'hint.txt'가 플래그에 대한 힌트인 것 같아서 cat 명령어로 해당 파일을 읽어줬다.
hint.txt에는 플래그의 경로가 나와있었다. 그래서 바로 cat ./dream/hack/hello/flag.txt를 입력해봤는데, No!라는 문구가 뜨면서 플래그 값이 출력되지 않는 것을 확인할 수 있다.
이는 파이썬 코드의 문제로
flag라는 문자열이 cmd에 들어가면 안되게끔 설정되어 있던 거였다. 즉, cmd는 user한테 입력받은 값이니까 내가 flag라는 글자를 입력하면 안됐던 것이다.
그래서 직접적으로 flag라는 네글자 모두를 적는 것이 아니라 fla?.txt와 같은 방식으로 물음표를 사용해서 한글자를 대체하면 되는 것이다. -> 리눅스 내용..
cat ./dream/hack/hello/fla?.txt의 결과
플래그 값이 무사히 구해진 것을 확인할 수 있다.
개인 공부 목적으로 작성된 글이며, 틀린 정보나 해석이 있을 수 있음.
https://dreamhack.io/wargame/challenges/837
'슈포스 > 워게임' 카테고리의 다른 글
[misc]Dreamhack_dreamhack-tools-cyberchef (0) | 2024.11.26 |
---|---|
[web]Dreamhack_ex-reg-ex (0) | 2024.11.19 |
[web]Dreamhack_command-injection-1 (0) | 2024.11.12 |
[misc]Dreamhack_Exercise: Docker (2) | 2024.11.11 |
[web]Dreamhack_🌱simple-web-request (0) | 2024.11.04 |