格式化字符串漏洞攻击,主要有以下三点。
1 拒绝服务攻击
2 查看内存攻击
3 写入任意内存攻击
我们这要说一下危害最大的任何写入内存攻击。
注意:最新版的Linux,先关闭地址随机化保护和利用GCC 编译时打开-z execstack
代码如下:
如大家所见,我把存在漏洞的函数规定为折构函数(程序结束后,协助程序完成一些期望的工作),这样子的化,我们不到那可以重写内存,还可以执行攻击代码。
利用 export SC=cat sc
其中sc是shellcode ,写入环境变量。利用Balaess等人的magic 公式计算写入地址。
利用 nm或者objdump获得折构函数首个函数开始位置,开始写入,如图
格式化字符串漏洞攻击
![](https://img-home.csdnimg.cn/images/20240711042549.png)