Wargame/FTZ

Hackerschool FTZ level13

pwn3r_45 2011. 7. 28. 23:36

Category : System hacking

ssh://ftz.hackerschool.org
id : level13
pw : have no clue

Summary : buffer overflow on redhat 6.2


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

[level13@ftz level13]$ ls -l
합계 28
-rwsr-x---    1 level14  level13     13953  3월  8  2003 attackme
-rw-r-----    1 root     level13       258  3월  8  2003 hint
drwxr-xr-x    2 root     level13      4096  2월 24  2002 public_html
drwxrwxr-x    2 root     level13      4096  7월 21 03:58 tmp
[level13@ftz level13]$ cat hint

#include <stdlib.h>

main(int argc, char *argv[])
{
   long i=0x1234567;
   char buf[1024];

   setreuid( 3094, 3094 );
   if(argc > 1)
   strcpy(buf,argv[1]);

   if(i != 0x1234567) {
   printf(" Warnning: Buffer Overflow !!! \n");
   kill(0,11);
   }
}


hint 파일은 attackme라는 프로그램의 source이다.
source를 보면 strcpy함수로 인해 buffer overflow취약점이 발생하는 것을 볼 수 있다.
지역변수 i의 값이 0x1234567이 아니면 kill 함수로 프로세스를 종료시켜버리기 때문에 공격할 때에 i의 값도 0x1234567로 덮어주어야한다.