wargame - system/DreamHack

[Dreamhack] Return to Library - Write Up

3omh4n 2023. 2. 2. 21:36

이번 문제는 아래 글과 동일한 문제이다. 다만 차이가 있다면 pwntools을 이용해 가젯과 문자열을 찾았다.

 

[system][hacking] Exploit Tech : Return to Library(RTL)

NX를 우회하는 공격기법인 RTL에 대해 공부한 내용이다. RTL을 공부하기 전 NX가 무엇인지, PLT가 무엇인지 알아야 한다. 이에 대한 내용은 아래의 글에 정리되어 있다. [system][hacking] 메모리 보호기

3omh4.tistory.com

간단히 사용한 API만 정리하였다. 밑의 API를 이용해 위 글의 페이로드를 적절히 수정해 해결하였다.

pwntools

ELF, ROP

e = ELF('./rtl')
r = ROP(e)

system_plt = e.plt["system"]
		# binary(./rtl)에 존재하는 PLT주소
binsh = next(e.search(b"/bin/sh"))
		# binary(./rtl)에 존재하는 /bin/sh 문자열의 offset
gadget = r.find_gadget(['pop rdi', 'ret'])[0]
		# binary(./rtl)에 존재하는 pop rdi, ret 가젯의 주소

search함수는 단독으로 사용할 경우 오류가 생겼다.. 이유를 모르겠다..