baby-linux

FWWKCS·2023년 12월 19일
0

Dreamhack

목록 보기
1/10
post-thumbnail

https://dreamhack.io/wargame/challenges/837




생성된 웹을 들어가면 다음과 같은 인터페이스가 나온다

이제 이곳에서 flag.txt를 찾아 열면 된다

진행

  1. 입력창에 ls를 입력하여 현재 경로에 어떤 파일이 있는지 확인한다

  2. 눈에 띄는 hint.txt를 확인해본다

  3. 해당 경로에서 flag.txt를 찾는다

  4. 이제 flag.txt를 조회한다

No! 라고 표시되며, 일반적인 접근으로는 확인이 불가능하게 된다.


주어진 코드를 확인해보면 입력창(cmd)에 flag라는 단어가 확인되면 결과값으로 No! 를 반환하도록 되어있다.

따라서 flag를 온전히 쓰지않고 접근하는 방법이 필요하다.




이 때 리눅스의 기능 중 하나인 와일드카드를 이용하면 해결 할 수 있다.

와일드카드는 "?", "*", "[ ]" 기호를 통해 문자나 숫자를 대체하여 파일을 탐색하는 기능이다.

"?"는 글자 하나를 대체하고, "*"은 0-9, a-z의 여러 문자를 대체하여 탐색하며,
"[ ]"는 숫자나 문자의 패턴에 맞는 파일을 탐색한다.


현재 파일에 abc.txt, adc.txt가 있을때, cat a?c.txt를 명령하면 a_c.txt로 구성된 모든 파일을 찾아 각 내용을 출력한다.
따라서 abc.txt, adc.txt를 모두 찾게된다

*.txt의 경우 여러 문자를 대신하여 탐색하므로, 확장자가 txt인 모든 파일을 탐색하게 된다


현재 파일에 a1, a2, a3, a4가 있을때, [a]* 를 명령하면, a( ) 인 파일을 모두 탐색하며, 패턴으로 어떤 범위를 지정하는 경우, a[2-4] 와 같이 사용하면, a( ) 중에서 숫자 2~4의 범위값을 가지는 a2 a3 a4를 탐색한다.


이제 이것을 이용하여 flag.txt 대신에 *.txtfl?g.txt 등과 같이 온전한 flag라는 단어를 사용하지 않고 해당 파일을 탐색해 flag.txt의 내용을 볼 수 있게 된다!


주의사항

플래그 txt 파일을 탐색하려고 *.txt를 그대로 써버리면 큰일난다!

현재 위치는 ls를 해서 나온 1번 사진이 있는 영역에서 모든 것을 처리해야한다. (cd를 통해 위치를 이동하는 것은 불가능)

따라서 cat *.txt를 써버리면

hint.txt와 requirement.txt를 모두 찾아 내용을 출력해버리기 때문에 플래그 파일이 있는 전체 경로에 대해 파일을 찾아가도록 작성해야 한다.

profile
Memory Archive

0개의 댓글

관련 채용 정보