HO_9
HO9
HO_9
전체 방문자
오늘
어제
  • 분류 전체보기 (104)
    • Write Up (3)
    • WarGame (21)
      • The Lord of Bufferoverflow(.. (7)
      • The Lord of Sql Injection(L.. (1)
      • Pwnable.kr (1)
      • Pwnable.tw (0)
      • XSS GAME (6)
      • Pwnable.xyz (5)
    • SYSTEM HACKING (49)
      • 기법 (24)
      • 문제 풀이 (24)
    • CODING (2)
      • PYTHON (2)
    • WEB HACKING (1)
    • Plan (0)
    • PROJECT (0)
    • iOS (6)
    • ALGORITHM (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • .

인기 글

태그

  • 아파치
  • 취약점
  • JNDI
  • log4j

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HO_9

HO9

SYSTEM HACKING/기법

Leak Stack Address

2021. 5. 2. 15:37
728x90

충족될 점

  • Libc Base 주소를 미리 구한 상태
  • 임의의 주소를 leak 할 수 있어야 함.

libc에는 environ이란 symbol이 있다.

이 symbol은 메인 함수의 세번째 인자인 char **envp와 같은 가치를 가지고 있다.

char **envp의 가치는 스택에 있고, 따라서 우리는 스택 주소를 구할 수 있다.

 

(gdb) list 1
1       #include <stdlib.h>
2       #include <stdio.h>
3
4       extern char **environ;
5
6       int main(int argc, char **argv, char **envp)
7       {
8           return 0;
9       }

(gdb) x/gx 0x7ffff7a0e000 + 0x3c5f38
0x7ffff7dd3f38 <environ>:       0x00007fffffffe230

(gdb) p/x (char **)envp
$12 = 0x7fffffffe230

(gdb) x/gx $rsp
0x7fffffffe140

(gdb) p 0x7fffffffe230 - 0x7fffffffe140
$13 = 0xf0

 

  • 0x7ffff7a0e000은 현재 libc base 주소
  • 0x3c5f38은 envrion의 offset
  • envrion의 주소는 0x7fffffffe230
  • stack의 주소는 0x7fffffffe140
  • envrion 주소 - stack의 주소 = 0xf0

이를 통해서 알 수 있는 점은

envrion 주소와 stack의 주소는 0xf0 차이가 나므로,

stack의 주소를 알고 싶다면, envrion addr - 0xf0 = stack addr으로 알 수 있다.

 

 

 

 

https://github.com/Naetw/CTF-pwn-tips

'SYSTEM HACKING > 기법' 카테고리의 다른 글

About Heap(2)  (0) 2021.12.28
About Heap(1)  (0) 2021.12.25
Windows Universal Shellcode - 이론  (1) 2021.04.02
Return to Csu  (0) 2020.04.26
[How2Heap] House of Force  (0) 2018.03.08
    'SYSTEM HACKING/기법' 카테고리의 다른 글
    • About Heap(2)
    • About Heap(1)
    • Windows Universal Shellcode - 이론
    • Return to Csu
    HO_9
    HO_9

    티스토리툴바