slide-image

pwnable.kr

[Toddler's Bottle]

# cmd1

 

코드 내용을 설명하자면, PATH를 추가하는 것도 아니고 아예 이상한 곳으로 바꿔버리기 때문에 기존의 명령어는 모두 절대경로로 해야한다. 예를 들어 cat도 /bin/cat으로 해야함.

 

그래서 which를 이용해서 명령어의 위치를 찾아주었다.

 

cat flag를 해야지 플래그를 얻을 수 있는데, filter 함수에 의해서 flag라는 글자와 sh, tmp등의 문자열이 인자로 들어갈 경우에 if문에서 True가 되어서 return 0으로 종료됨을 알 수 있다.

 

따라서 find 명령어를 이용하기로 했다.

 

<find 명령어>

find

find 명령만 입력하면 현재 디렉토리(.)에 있는 파일을 찾는다. (하위 디렉토리, 숨겨진 파일도 표시)

 

find /etc

특정 디렉토리(여기서는 /etc)에 있는 파일을 검색한다.

 

find /etc -name "ssh*"

찾을 파일이름을 지정할 수 있다.

 

find . -name "test*"

-name 옵션으로 찾을 파일 이름을 지정한다.

 

find . -name "test*" -type d

디렉토리만 찾을려면 -type d 옵션을 사용한다.

 

find . -empty 

빈 파일을 찾기위해 -empty 옵션을 사용한다.

 

find . -exec 명령어 {} \;

-exec 옵션 뒤에 명령어를 입력하여 검색한 파일로 부가적인 작업을 수행할 수 있다.

(검색된 파일이 {} 위치에 입력되어 처리된다.)

 

출처:

https://withcoding.com/97

 

리눅스 find 명령어 사용법 정리 (파일, 디렉토리 검색, 찾기)

리눅스(Linux)에서는 find 명령어로 원하는 조건의 파일, 디렉토리를 검색할 수 있습니다. find는 옵션이나 사용법이 매우 다양한 명령이기 때문에 한번에 다 정리하기는 힘들고, 생각이 날 때마다 정리해서 글을..

withcoding.com

 

 

flag를 쓰지 못하니까 정규표현식으로 표현할 수 있다.

밑의 명령어는 왜 .bash_history를 접근하는지 모르겠지만, 그런가보다.

 

'Wargame > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] TB #shellshock  (0) 2019.07.14
[pwnable.kr] TB #random  (0) 2019.07.13
[pwnable.kr] TB #lotto  (0) 2019.05.15
[pwnable.kr] TB #mistake  (0) 2019.05.14
[pwnable.kr] TB #bof  (0) 2019.03.20