본문
exploit 문제가 아니라 나도 잘하면 풀수 있을 것 같아 덤볐다가..포기한 문제-_-;
답이 너무 궁금한데, write up이 나오지 않아, 아는 동생이랑 같이 풀어봤다....혼자 푼게 아니라서 write up을 쓰기가 껴려졌었는데, 대회 때 초반에 나온 문제인데, 2명밖에 못 풀어서.. 궁금해 하는 사람이 많을 것 같아서 대충 정리해서 올린다.
아는 동생의 도움을 받아 새로운 트릭을 하나 배웠다.
현재 디렉토리에
file1.gzip, file2.gzip, file3.gzip 이 있는 경우
tar zvf *.gzip 을 하게 되면
tar zvf file1.gzip file2.gzip file3.gzip 으로 shell에 의해서 *.gzip이 확장되어 실제 명령어로 실행된다는 사실!..
아마 이 문제의 key가 아닐까 싶다.
이 문제는 크게 세가지의 꼼수를 사용해야 풀수 있는데,
- 그 중 하나는 위에서 설명한 꼼수이고
- 두번째는 상대경로로 파일을 생성하는 방법이다.
- 그리고 마지막으로 givemeshell 문제에서 사용된 sh<&4 같은 리디렉션을 이용하는 방법
이다.
이 세가지를 잘 조합하면서 문제를 풀어나가보면..
일단 정상(?)적인 아이디를 하나 생성한다.
그리고, toolbox를 설치할지 물어보는 부분에서 대기!..
그럼. UserSpace에 해당 ID의 디렉토리가 생성된다.(예를 들어, 0cc175b9c0f1b6a831c399e269772661 라고 하자.)
그 상태에서 새로운 접속을 만들어 또 다른 아이디를 생성한다.
이 때 아이디의 이름은
../UserSpace/0cc175b9c0f1b6a831c399e269772661/--to-command=sh<&4;.gzip
으로 생성한다.
그럼,
UserSpace/0cc175b9c0f1b6a831c399e269772661/ 에
--to-command=sh<&4;.gzip 이라는 파일이 생성될 것이다.
그 상태에서
처음에 생성한 계정으로 돌아가서,
toolbox를 설치 한다.
그럼,
/bin/sh -c tar xvfzp *.gzip 이 실행되면서
이 명령은 tar xvfzp file1.gzip file2.gzip .... --to-command=sh<&4;.gzip 이라는 명령어로 확장된다.
그럼, tar 명령에 의해서 --to-command 뒤의 명령이 실행되면서 shell 획득 가능!!..
재미있는 문제인듯...ㅎㅎ
ps. --to-command=sh<&4;gzip 대신에 nc나 다른 명령을 써복 싶었지만. 버퍼가 딱 저기 까지 이다.
그리고, hint에 ubuntu라고 나와있는 건..CentOS의 tar 명령에는 --to-command 옵션이 없다;;.(CentOS 5.3 기준.)
'컴퓨터 이야기 > Security' 카테고리의 다른 글
[Tips] IDA에서 dll 분석 시 base address 바꾸는 방법. (0) | 2013.11.28 |
---|---|
Blind SQL injection시 Request를 최소화 하는 방법. (0) | 2013.10.02 |
윈도우 쉘코드 작성 시 참고자료. (0) | 2013.09.16 |
[wargame] webhacking.kr clear! (5) | 2013.06.28 |
2013 Secuinside CTF 예선 참가 후기. (1) | 2013.05.27 |