[pwn] - pwntools 로 PIE base 구하기
바이너리에 PIE가 걸려 있다면, 디버깅 할때 주소가 랜덤으로 바뀌어 breakpoint를 걸 수 가 없다.
하지만 PIE base를 구할 수 있다면, 주소가 랜덤으로 바뀌어도 breakpoint를 걸 수 있다.
바로 아래 코드가 중요하다.
pie_base = p.libs()["바이너리 절대 경로"]
간단한 예를 보면 다음과 같다.
from pwn import *
context.terminal = ['tmux', 'splitw', '-h']
context.log_level = 'debug'
p = process("./challenge")
e = ELF("./challenge",checksec=False)
pie_base = p.libs()["/home/ubuntu/environment/ctf/pwnable.xyz/20_message/challenge"]
func_addr = pie_base + e.symbols["function_name"]
script= '''
b *{}
c
'''.format(hex(func_addr))
gdb.attach(proc.pidof(p)[0], script)
p.interactive()
'Security > pwnable' 카테고리의 다른 글
[pwnable] - glibc 2.24 이상 버전에서 _IO_FILE vtable check bypss (0) | 2020.10.07 |
---|---|
[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 |
댓글
이 글 공유하기
다른 글
-
[pwnable] - glibc 2.24 이상 버전에서 _IO_FILE vtable check bypss
[pwnable] - glibc 2.24 이상 버전에서 _IO_FILE vtable check bypss
2020.10.07 -
[pwnable] - _IO_FILE structure and vtable overwrite
[pwnable] - _IO_FILE structure and vtable overwrite
2020.10.02 -
[pwn] - environ 변수로 stack leak 하기
[pwn] - environ 변수로 stack leak 하기
2020.02.23 -
64bits 인자 값 전달 방식 순서
64bits 인자 값 전달 방식 순서
2020.01.28
방명록 좀 봐주시요...