[pwn] - environ 변수로 stack leak 하기
environ 변수를 이용해 stack leak 를 하는 방법이다.
이 공격을 하기 위해 다음과 같은 가정이 필요하다.
- libc base 주소를 알고 있다.
- 임의의 주소를 leak 할 수 있다.
gdb-peda$ p 0x00007ffff79e4000 + 0x861a5c8
$2 = 0x7fffffffe5c8
gdb-peda$ p environ
$3 = (char **) 0x7fffffffe5c8
gdb-peda$ x/gx $rsp
0x7fffffffe4d8: 0x00007ffff7a05b97
gdb-peda$ p 0x7fffffffe5c8 - 0x7fffffffe4d8
$4 = 0xf0
gdb-peda$
libc base address: 0x00007ffff79e4000
environ offset: 0x861a5c8
environ address: 0x7fffffffe5c8
ret address: 0x7fffffffe4d8
environ address를 구했다면 ret address 까지의 거리는 0xf0 이므로
만약, CTF 문제에서 stack address 주소를 알고 싶다면, environ address - 0xf0 = ret address 로 구할 수 있다.
https://github.com/Naetw/CTF-pwn-tips#leak-stack-address
Naetw/CTF-pwn-tips
Here record some tips about pwn. Something is obsoleted and won't be updated. Sorry about that. - Naetw/CTF-pwn-tips
github.com
'Security > pwnable' 카테고리의 다른 글
[pwnable] - _IO_FILE structure and vtable overwrite (0) | 2020.10.02 |
---|---|
[pwn] - pwntools 로 PIE base 구하기 (2) | 2020.02.23 |
[pwn] - environ 변수로 stack leak 하기 (1) | 2020.02.23 |
64bits 인자 값 전달 방식 순서 (0) | 2020.01.28 |
[bof] - RTL Chaining 공격 기법 (0) | 2019.09.29 |
[bof] - Frame faking (Fake EBP) 공격 기법 (0) | 2019.09.25 |
댓글
이 글 공유하기
다른 글
-
[pwnable] - _IO_FILE structure and vtable overwrite
[pwnable] - _IO_FILE structure and vtable overwrite
2020.10.02 -
[pwn] - pwntools 로 PIE base 구하기
[pwn] - pwntools 로 PIE base 구하기
2020.02.23 -
64bits 인자 값 전달 방식 순서
64bits 인자 값 전달 방식 순서
2020.01.28 -
[bof] - RTL Chaining 공격 기법
[bof] - RTL Chaining 공격 기법
2019.09.29
libc base address+environ_offset은 environ ptr 주소이고 environ ptr이 가리키는 곳이 environ입니다.