Pwnable/FTZ

FTZ - level19 [Buffer Overflow 𝜇]

2020. 8. 28. 13:14
목차
  1. LEVEL 19

LEVEL 19

 

[level19] passcode : swimming in pink

(NO DRAG, NO PASSCODE)


hint의 소스코드를 분석해보자.

 

그리 어렵지 않은 소스코드이다. 이 문제는 level11과 아주 유사한 구성을 가지고 있지만 setreuid 함수가 존재하지 않아 쉘코드만 삽입하여 실행하면 그저 level18 권한의 쉘만 따질 것이다.

 

우선 tmp 디렉토리에 attackme 프로그램을 복제해주고, gdb를 통하여 attackme 프로그램의 메모리 구조를 살펴보자.

메모리 구조는 다음과 같다.

 

—————————— High Address

| ret(4) |

——————————

| sfp(4) |

—————————— ← ebp

| dummy(20) |

——————————

| buf(20) |

—————————— Low Address

 

문제 해결 과정은 다음과 같다.

 

  1. buf(20) + dummy(20) + sfp(4) = 44 만큼을 NOP로 덮어야 한다.
  2. 그 뒤의 ret 주소를 setreuid 주소 + shellcode 삽입 주소 + ruid + euid 로 덮어주어야 한다.
  3. setreuid(uid_t ruid, uid_t euid) : uid_t ruid(real id, 누구로 로그인 했는가), uid_t euid(effective id, 나의 권한이 무엇인가)

우선 setreuid 함수의 주소부터 찾아주자.

우선 함수를 찾기 위하여 gdb에서 main의 시작점부터 bp를 걸어주고 실행을 시킨뒤에 setreuid 함수를 찾아보자.

setreuid 함수의 주소 → 0x420d7920

그리고 shellcode를 export 해주고 주소를 알아내자.

export 해준 SHELLCODE의 주소를 출력하는 프로그램을 만들고,

컴파일하여 실행한다.

SHELLCODE의 주소 → 0xbffffc15

 

그리고 setreuid 함수의 인자로 사용할 level20의 uid를 얻자.

- grep 명령어 : 특정 문자열을 찾고자 할 때 사용

이제 문제를 해결해보자.


[level20] : we are just regular guys

저작자표시 (새창열림)

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

FTZ - level20 [Format String Bug]  (0) 2020.08.28
FTZ - level18 [Buffer Overflow 𝜽]  (0) 2020.08.28
FTZ - level17 [Buffer Overflow 𝜼]  (0) 2020.08.28
FTZ - level16 [Buffer Overflow 𝜻]  (0) 2020.08.28
FTZ - level15 [Buffer Overflow 𝜺]  (0) 2020.08.28
  1. LEVEL 19
'Pwnable/FTZ' 카테고리의 다른 글
  • FTZ - level20 [Format String Bug]
  • FTZ - level18 [Buffer Overflow 𝜽]
  • FTZ - level17 [Buffer Overflow 𝜼]
  • FTZ - level16 [Buffer Overflow 𝜻]
Lucvs
Lucvs
Department of Computer Science and Engineering, 21th, Sungkyunkwan University
Lucvs
Lucvs
Lucvs
전체
오늘
어제
  • 분류 전체보기
    • Lucvs
      • 훈련소 일기
      • 寿司
      • 영국 여행기
    • Pwnable
      • Techniques
      • FTZ
      • LOB
      • HackCTF
      • Dreamhack
      • pwnable.kr
      • CTF
    • Web Hacking
      • Techniques
      • Webhacking.kr
      • HackCTF
      • Dreamhack
      • LOS
    • Reversing
      • Dreamhack
    • Cryptography
      • Modern Cryptography
      • Algorithm
      • Differential Attack (차분 공격)
      • Linear Attack (선형 공격)
    • Forensic
      • Dreamhack
    • Programming
      • C
      • Python
      • Java
    • Deep Learning
    • Network
    • Project
    • Hardware
      • Raspberry Pi
      • Arduino

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 잉글랜드
  • 군대
  • 기본군사훈련단
  • 여행기
  • Error-Based SQL Injection
  • 드림핵
  • rev-basic
  • 차분 분석
  • dreamhack.io
  • 효전화
  • lord of sql injection
  • 공군 훈련소
  • SQL INJECTION
  • 훈련소
  • Differential Attack
  • Los
  • 공군
  • J
  • 차분 공격
  • 웹해킹
  • 영국
  • 기훈단
  • Web Hacking
  • 일기
  • Lord of SQL Injeciton
  • 군대 일기
  • 훈련소 일기
  • blind sql injection
  • dreamhack
  • 런던

최근 댓글

최근 글

hELLO · Designed By 정상우.
Lucvs
FTZ - level19 [Buffer Overflow 𝜇]
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.