利用格式化字符串漏洞泄露Canary机制及其绕过策略
139 浏览量
更新于2024-08-28
收藏 1.75MB PDF 举报
本文主要探讨了Canary机制及其在对抗栈溢出攻击中的应用,尤其是在32位系统中的保护作用。Canary,即栈保护标志,是一种防止栈溢出漏洞的技术,它在函数调用时会在栈上放置一个随机值(canary),当函数返回时检查这个标志是否被修改,如有变化则表明栈被非法访问,可能存在安全威胁。
在实验源码文件"Canary.c"中,作者通过GCC编译器(`gcc-m32-ggdb-zexecstack-fstack-protector-no-pie-opwnmeCanary.c`)演示了如何使用Stackcanary,并且通过`ldd`工具观察了库文件加载位置的变化。为了便于调试,文章建议关闭地址随机化保护(`echo 0 > /proc/sys/kernel/randomize_va_space`)。
文章接着介绍了利用格式化字符串漏洞泄露Canary值的方法。由于Canary的值每次运行都会改变,攻击者可以通过覆盖栈帧中的数据来尝试猜测或直接获取。具体操作是在printf函数的格式化字符串漏洞点下断点,输入特定的字符序列后,分析栈内存以确定字符串偏移量,进而计算Canary的偏移地址。例如,通过输入`AAAAAAAAAA`,分析ESP寄存器的值和字符串起始位置,得知格式化字符串偏移27个字节,从而找到Canary的存储位置。
在Python脚本"exp.py"中,提到了ret2libc技术的应用,这是一种常见的攻击手段,攻击者通过控制返回地址,引导程序执行到预设的地址,通常用于从内存中读取或写入关键数据,包括Canary值。作者鼓励读者参考相关链接深入理解这一概念。
总结来说,本文详细讲解了Canary机制的原理、使用方法以及如何通过格式化字符串漏洞来泄露其值。同时,还涉及到了与之相关的其他攻击技术和防御手段,如ret2libc。这是一篇实用性强,对防御栈溢出攻击有深入理解的教程。
2021-09-05 上传
2022-08-04 上传
2020-05-16 上传
2023-06-09 上传
2023-09-08 上传
2023-05-05 上传
2024-04-08 上传
2023-05-24 上传
2023-09-15 上传
weixin_38650842
- 粉丝: 4
- 资源: 977
最新资源
- DSP芯片的介绍与产品应用
- 通信中常用的信号处理
- matlab编程(中文版)
- JDBC连接各种数据库经验技巧集萃
- Java精华积累每个初学者都应该搞懂的问题
- QCon 2009 beijing全球企业开发大会ppt:17.吕建伟--实效项目管理
- 单片机c语言轻松入门
- Struts in action
- QCon 2009 beijing全球企业开发大会ppt:12.Hadoop取舍之间--高性能、高流量和多数据中心互联网应用架构设计
- 手机开发总结WM的一些要注意的地方
- xml教程:轻松搞定XML
- 用Visual C++ 6.0设计媒体播放器
- MySQL安装方法.docx
- QCon 2009 beijing全球企业开发大会ppt:8.豆瓣网技术架构的发展历程
- Visual C++ MFC 简明教程
- 模拟电子技术 高等教育出版社 第三版 课后答案