格式化字符串漏洞利用之泄露canary

本文介绍了两道格式化字符串漏洞利用题目,详细讲解了如何泄露Canary并绕过其保护。通过分析栈布局和利用printf函数,展示了利用‘%p’格式化字符来获取敏感信息的方法,并探讨了在64位Linux系统中参数传递的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两道格式化字符串漏洞利用入门题,绕过canary的一种姿势,不知道写的对不对,请大家多指正。

0x01 Canary
保护
在这里插入图片描述
开启了NX和canary。

题目分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有个getshell函数,vuln函数里面明显的栈溢出和格式化字符串漏洞,所以可以利用printf函数泄露出canary的值,然后利用栈溢出填充canary,控制返回指针执行getshell函数。


在这里插入图片描述
在这里插入图片描述

从栈的情况看,var_8(即canary的值)距离栈顶120个字节,120/8 =15,64位Linux前六个参数用寄存器传递,后面的才从栈上读取,所以要使var_8是printf函数的第22个参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值