60、代码安全测试:格式字符串漏洞检测

代码安全测试:格式字符串漏洞检测

1. 格式字符串漏洞案例分析

格式字符串漏洞是一种常见的安全隐患,下面以 lprng 软件为例进行说明。lprng 软件接受用户输入,这些输入随后会作为函数调用 snprintf() 的格式字符串传递给 syslog() 。这种格式字符串漏洞的特定情况,会使具有打印机端口远程访问权限的用户能够覆盖打印服务地址空间中的地址。这可能导致分段错误,进而导致打印服务拒绝,或者被用于执行通过其他方法注入到打印服务内存栈中的任意代码。所有这些事件都是由于调用 syslog() 时缺少格式说明符引起的。

2. 测试技术

2.1 格式化函数关注重点

在格式化函数列表中, sprintf vsprintf 这两个函数需要特别关注,因为它们会将格式化的数据“打印”到缓冲区。修复这种漏洞的方法是始终使用格式说明符来格式化数据。

2.2 黑盒测试

在黑盒测试中,在所有输入字段中包含一些格式化参数非常重要。这些参数应包括以下内容,但也可以使用更多:
- %x
- %s
- %n

然后观察所有输出以及程序本身是否有异常输出或行为。你还可以尝试在输入字符串中嵌入多个 %s 参数进行测试。如果存在格式字符串漏洞,可能会导致访问违规错误或其他导致应用程序崩溃的错误。

2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值