GFCTF 2021 where_is_shell

打开环境,先进行nc连接,发现随便输入一些东西后就会被弹出,检查附件并用相应ida打开。

发现定义了一个字符串buf,距栈底距离为0x10,并且有一个read函数,再检查附件其他内容并没有发现bin/sh,但是发现了一个tips,跳转到该地址进行查看

发现机器码24 30,$0在机器码中为 \x24\x30,可以利用system($0)获得shell权限。

只需要取它地址后一位就可以了也就是取到0x400541就能得到$0的机器码。

要构造的payload就是首先需要覆盖返回地址,使用ret弹出一个地址,再使用pop rdi ret 把我们的shell的地址存进rdi寄存器里,最后再调用system函数,因为rdi里存着shell函数的地址所以调用了system函数就等于system($0)。

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值