[PWN][基础篇]格式字符串漏洞发生的条件(上)

简介: [PWN][基础篇]格式字符串漏洞发生的条件

格式字符串漏洞发生的条件

1、实验一

2、实例二

3、实例三


本次实验3个实例

1、实验一

代码如下:

image.png

这个实验是不存在漏洞的,重点在于理解printf函数的堆栈变化。

使用GDB打开,我们先要看一下main函数,可以看到printf函数的地址是0x00001206

image.png

我们在printf函数处下断点

image.png

开始运行这个程序,

1.png

这个单步n是不可以的,我们要先删除断点后start程序

1.png

image.png

我们来看一下栈中的情况

3个数,是倒序压栈的,从右到左,所以我们在先是\n,然后是e9也就是我们的233

image.png

最后是hello world,这样的压栈方式是为了正向的输出,first in last out吗不是

2、实例二

代码如下:

image.png

image.png

我们运行一下这个程序,我们就可以发现这个程序的漏洞了

image.png

和上面的流程一样,先看看main函数,然后再printf函数处下断点

image.png

image.png

观察一下栈

image.png

再单步一次,观察一下输出的东西

image.png

我们可以看一下输出的最后一个为什么是0

image.png

所以说当参数和格式化输出不相同时,程序就会错输出。

相关文章
|
3月前
|
安全 应用服务中间件 网络安全
Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)
Python 渗透测试:漏洞的批量搜索与利用.(GlassFish 任意文件读取)
47 11
|
API Python
32.从入门到精通:Python错误输出重定向和程序终止 字符串正则匹配 访问 互联网 日期和时间
32.从入门到精通:Python错误输出重定向和程序终止 字符串正则匹配 访问 互联网 日期和时间
|
Go 索引 Python
python编码基础--字符串与它的相关操作
python编码基础--字符串与它的相关操作
|
Unix Linux PHP
php获取文件的权限信息(获取权限信息、返回字符串涵义、二进制的转换方式、权限修改)
php获取文件的权限信息(获取权限信息、返回字符串涵义、二进制的转换方式、权限修改)
190 0
如何用正则表达式判断手机号格式正不正确
如何用正则表达式判断手机号格式正不正确
139 0
|
程序员 Python
【Python】综合运用知识点,判断字符串中的数字以及统计汇总功能
最近在学习python,如何快速提高所学编程和加深印象呢 很显然,通过多练习和尝试编写代码实现功能
99 0
|
数据采集 存储 算法
python处理smap level2c 数据---根据 iqc_flag进行数据质量控制(二进制&十进制)
最近在处理SMAP_level2c_sss数据时,再进行偏差估计时发现数据存在问题,根据卫星图像对比,发现在数据筛选之前未进行质量控制,因此有较大的问题。再次,进行一定的总结:
python处理smap level2c 数据---根据 iqc_flag进行数据质量控制(二进制&十进制)
|
JSON 数据格式
关于 Qt使用QJsonObject解析超范围整数的时候提取value失败 的解决方法
关于 Qt使用QJsonObject解析超范围整数的时候提取value失败 的解决方法
关于 Qt使用QJsonObject解析超范围整数的时候提取value失败 的解决方法
|
Web App开发 网络协议 Unix
Linux-文本处理三剑客awk详解+企业真实案例(变量、正则、条件判断、循环、数组、分析日志)
文本处理 awk 1.awk简介 awk是一种编程语言,用于在Linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其他命令的输出,它支持用户自定义函数和动态正则正则表达式等先进功能,是Linux/unix下的一个强大的编程工具。它在命令行中使用,但更多是作为脚本来使用。
509 0
Linux-文本处理三剑客awk详解+企业真实案例(变量、正则、条件判断、循环、数组、分析日志)
|
安全 NoSQL
[PWN][基础篇]格式字符串漏洞发生的条件(下)
[PWN][基础篇]格式字符串漏洞发生的条件
103 0
[PWN][基础篇]格式字符串漏洞发生的条件(下)