eli_ez3r
eli_ez3r
eli_ez3r
전체 방문자
오늘
어제
  • 분류 전체보기 (202)
    • 0x01 끄적끄적 :) (57)
      • Network (5)
      • Security (14)
      • Reversing (2)
      • Forensic (5)
      • Operation System (10)
      • Development (10)
      • Solution (7)
      • 보안 상식 (3)
    • 0x02 Study :) (127)
      • Pwnable (59)
      • Webhacking (56)
      • Reversing (11)
      • Machine Learning (1)
    • 0x03 ETC :) (16)
      • IT Unpacking (5)
      • IT Information (1)
      • Enjoy (4)
      • Etc (6)
    • Admin :) (0)
      • 0x01 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • github.io 블로그 개설

인기 글

태그

  • 오버플로우
  • 패스워드
  • 스쿨
  • 풀이
  • hacking
  • 문제풀이
  • BOF
  • 설명
  • attack
  • 해커
  • overflow
  • web
  • hacker
  • Up
  • school
  • hack
  • 암호
  • webhacking.kr
  • buffer
  • 공격
  • hakcing
  • LEVEL
  • 문제
  • 해킹
  • password
  • pwnable
  • LOB
  • 과정
  • 메모리
  • write

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
eli_ez3r

eli_ez3r

[해커스쿨] FTZ level14 풀이과정
0x02 Study :)/Pwnable

[해커스쿨] FTZ level14 풀이과정

2017. 1. 11. 20:50


2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level13 풀이과정



보자보자!! 힌트를 보자!!!

int 변수를 2개 선언하고, 20byte 배열 하나 선언하고 ... 그런데 45byte만큼 buf로 fgets 하네...

check라는 변수에 0xdeadbeef가 들어있나 확인하네.. 정확하게 gdb로 파헤쳐보자.



보아하니.. 0x38(56byte)만큼 공간 할당하고, [ebp-56]에 fgets로 받은 문자열을 저장하고, 

[ebp-16]에 0xdeadbeef가 있구먼...



fgets함수 바로 다음인 <main+36>에 BP걸고 대충 아무 값인 "AAAAAAAA"을 넣고 실행해보니..

일단 입력 받은 문자열이 들어가는 주소는 "0xbffff210"이네... 그런데 "0xdeadbeef"값이 안보인다.



우리가 추측했던 [ebp-16]을 보자, "0xdeadbeef"값은 없다.  없으면 넣어버리지 뭐?

정리해보자!!

56byte만큼 변수공간을 할당받고, 

문자열이 들어가는 주소는 [ebp-56] "0xbffff210"이고, 

[ebp-16]의 주소는 "0xbffff238"

[ebp-56]부터 [ebp-16]까지는 40byte이다.

[ebp-16]에 "0xdeadbeef"의 값이있어야 되는데, 쓸데없는 값이 들어있으므로, 

[ebp-16]에 "0xdeadbeef"를 넣어주면 될것같은데? 정리 끝!

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



저작자표시 비영리 변경금지 (새창열림)
    '0x02 Study :)/Pwnable' 카테고리의 다른 글
    • [해커스쿨] FTZ level16 풀이과정
    • [해커스쿨] FTZ level15 풀이과정
    • [해커스쿨] FTZ level13 풀이과정
    • [해커스쿨] FTZ level12 풀이과정
    eli_ez3r
    eli_ez3r

    티스토리툴바