Print Stack Canary

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

放大打印的栈

想象一种情况,一个容易受到栈溢出攻击的程序可以执行一个指向栈溢出部分puts函数。攻击者知道canary的第一个字节是空字节\x00),其余的canary是随机字节。然后,攻击者可以创建一个溢出,覆盖栈直到canary的第一个字节

然后,攻击者在有效负载的中间调用puts功能,这将打印所有canary(除了第一个空字节)。

有了这些信息,攻击者可以构造并发送一个新的攻击,知道canary(在同一个程序会话中)。

显然,这种策略非常受限,因为攻击者需要能够打印他的有效负载内容,以外泄canary,然后能够创建一个新的有效负载(在同一个程序会话中)并发送****真正的缓冲区溢出

CTF示例:

任意读取

通过类似格式字符串提供的任意读取,可能可以泄漏canary。查看此示例:https://ir0nstone.gitbook.io/notes/types/stack/canaries,您可以阅读有关滥用格式字符串以读取任意内存地址的内容:

pageFormat Strings
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

最后更新于