참 재밌는 문제입미다
웹사이트를 실행해보면요
요렇게 생겼습니다
그럼 이제 python 파일을 한번 볼게여
이 코드를 한번 분석해 봅시다.
우선 요 부분을 보면 웹페이지에서 볼 수 있는 text 입력 칸이 user_input이라는 변수로 받게 되고 cmd라는 변수에 저장됩니다.
그리고 만약 우리가 입력한 값에 'flag'라는 철자가 들어가게 된다면 무조건 No!를 출력하도록 되어있는 걸 볼 수 있습니다.
그리고 만약 flag가 포함되지 않았다면 정상적으로 입력되어진 명령어를 실행하고 result로 utf-8로 인코딩 되어 있는 것을 html로 넘겨주는 모습을 볼 수 있습니다. 이때 이 result가 웹사이트에서 밑에 표시되는 텍스트이겠죠
그럼 한번 실험을 해봅시다.
당연히 flag 라고 치면 No! 라고 하는 모습을 볼 수 있습니다
그렇다면 ls를 해서 파일을 한번 봅시다
ls 로 쳤을 때 이렇게 보이죠? hint.txt를 한번 읽어볼게여 (cat 사용)
hint.txt의 내용입니다. 이 힌트의 내용대로 ./dream/hack/hello에 ls 명령어를 쳐 봅시다.
flag.txt가 있군요...
이제 이걸 읽을라면 원래는 cat ./dream/hack/hello/flag.txt를 하면 되지만 우리는 flag라는 단어를 쓰면 안되죠? 그래서 저는 -exec 라는 리눅스 명령어를 통해 flag를 쓰지 않고 cat를 할 수 있는 방법을 생각했습니당.
그러면 명령어로 find ./dream/hack/hello/*.txt -exec cat {} \; 를 해서 find로 찾은 txt 파일을 그대로 cat 할 수 있게 했습니당
이렇게 flag 값이 잘 나오는걸 볼 수 있습니다 ! ^__^
+ 추가) 사실 찾아보니깐 그냥 cat ./dream/hack/hello/*.txt 만 해도 나온다는 사실.....^^...
'WARGAME > misc' 카테고리의 다른 글
[dreamhack] set-int (0) | 2023.09.29 |
---|---|
[dreamhack] 64se64 (0) | 2023.06.29 |