🔒Security
[pwn] - environ 변수로 stack leak 하기
Universe7202
2020. 2. 23. 09:29
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