cmd1보다 filter이 더 까다로워졌다.
또, delete_env()를 사용해 환경변수도 막는다.
cmd1처럼 $[환경변수] 를 사용해서 풀 수는 없을 것이다.
또, PATH를 날려버리니 cat 도 쓸 수 없다. 아니, /bin 에 있는 프로그램, /usr/bin 에 있는 프로그램이 전부 사용 불가하다.
내가 아는 출력 명령어가 cat과 echo밖에 없어서 echo를 좀 더 알아봤는데 echo는 파일을 출력할 수는 없는 것 같았다.
대신, [ https://www.thinkit.or.kr/linux/entry/echo-%EB%82%B4%EB%B6%80%EB%AA%85%EB%A0%B9%EC%96%B4 ]이 사이트에서
이 표를 볼 수 있었다.
이 중에 내 눈을 끈 것은 14번인데, \nnn을 통해 ASCII코드를 8진수로 넣어줄 수 있었다.
혹시나 이를 사용해서 넣어주면 filter에 걸리지 않지 않을까 싶어서 /를 echo로 출력해 보았다.
cmd1에서 사용했던 대로
$(변수) 를 사용했는데
이 경우에는
$(echo "\57") 이다. (/는 ASCII코드 OCT로 57이다)
따라서 페이로드는 $(echo "\57")bin$(echo "\57")sh
였다.
쉘이 따졌는데 PATH가 없어서 그런지 명령어들이 잘 실행되지 않아서 절대경로로 넣어주니 제대로 실행 되는걸 확인했다.
'pwnable > Toddler's Bottle' 카테고리의 다른 글
[Toddler's Bottle] asm (0) | 2018.09.12 |
---|---|
[Toddler's Bottle] uaf (0) | 2018.05.31 |
[Toddler's Bottle] cmd1 (0) | 2018.05.29 |
[Toddler's Bottle] lotto (0) | 2018.05.29 |
[Toddler's Bottle] blackjack (0) | 2018.05.29 |