模糊测试阅读笔记

article/2025/10/8 1:39:43

1、 什么是模糊测试

模糊测试最初是由Barton Miller于1989在威斯康星大学开发的。模糊测试是一种软件测试技术,也是一种安全测试。

模糊测试或Fuzzing是一种软件测试技术,它将称为Fuzz的无效或随机数据放入软件系统,以发现编码错误和安全漏洞。模糊测试的目的是使用自动化或半自动化技术插入数据,并测试系统是否存在各种异常,如系统崩溃或内置代码故障等。

2、为什么要做模糊测试?

  • 通常,模糊测试会发现最严重的安全故障或缺陷。
  • 与黑盒测试、Beta 测试和其他调试方法一起使用时,模糊测试可提供更有效的结果。
  • 模糊测试用于检查软件的漏洞。这是非常具有成本效益的测试技术。
  • 模糊测试是黑盒测试技术之一。模糊测试是黑客用来发现系统漏洞的最常用方法之一。

3、如何进行模糊测试

模糊测试的步骤包括基本的测试步骤——

以AFL为例

4、模糊测试器的例子

  • 基于突变的模糊器,更改现有数据样本以创建新的测试数据。这是一种非常简单直接的方法,它从有效的协议样本开始,并不断修改每个字节或文件。

  • 基于生成的模糊器,根据模型的输入定义新数据。它根据规范从头开始生成输入。

最简单的模糊测试技术形式是将随机输入作为协议数据包或作为事件发送到软件。这种传递随机输入的技术非常强大,可以在许多应用程序和服务中发现错误。其他技术也可用,而且很容易实现。为了实现这些技术,我们只需要改变现有的输入。我们可以通过交换输入位来改变输入。

5、模糊测试检测到的错误类型

  • 断言失败和内存泄漏这种方法被广泛用于存在错误影响内存安全的大型应用程序,这是一个严重的漏洞。

  • 输入无效

    在模糊测试中,模糊器用于生成用于测试错误处理例程的无效输入,这对于不控制其输入的软件很重要。简单的模糊测试可以被称为自动化负面测试的一种方式。

  • 正确性错误

    模糊测试也可用于检测某些类型的“正确性”错误。例如数据库损坏、搜索结果不佳等。

6、模糊测试的优点

        成本较低、效率较高,自动化,容易配置,是一种有效的软件测试方法

7、模糊测试的缺点

  • 模糊测试改进了软件安全测试。
  • 在模糊测试中发现的错误有时很严重,并且大多数时间都被黑客使用,包括崩溃、内存泄漏、未处理的异常等。
  • 如果由于时间和资源的限制,测试人员没有注意到任何错误,这些错误也会在模糊测试中发现。
  • 仅凭模糊测试无法提供整体安全威胁或漏洞的完整情况。
  • 模糊测试对于处理不会导致程序崩溃的安全威胁,如某些病毒、蠕虫、木马等,效果较差。
  • 模糊测试只能检测简单的故障或威胁。
  • 为了有效地执行,它将需要大量时间。
  • 使用随机输入设置边界值条件非常有问题,但现在使用基于用户输入的确定性算法,大多数测试人员都可以解决这个问题。

参考链接:

https://www.guru99.com/fuzz-testing.html

【社团分享】Fuzzing入门-原理与实践_哔哩哔哩_bilibili


http://chatgpt.dhexx.cn/article/F7vmlN14.shtml

相关文章

模糊测试的简介

了解模糊测试、污点分析的相关内容配置KLEE等生产环境。分析模糊测试的优缺点 模糊测试 核心思想:模糊测试是一种软件漏洞自动挖掘技术,其核心思想是将一段数据输送给目标软件,并监控 / 判断程序行为特征,如崩溃、断言失败等&am…

Driller、Exploit自动生成引擎 Rex

来自 UCSB 的团队 Shellphish,为参加 DARPA 举办的 CGC 竞赛,设计并实现了 CRS(Cyber Reasoning System)Mechaphish。该系统包含自动化漏洞挖掘模块 Driller、Exploit自动生成引擎 Rex、自动补丁模块 Patcherex 以及 ropchain 生成模块 angrop。本文主要对其中的 Exploit 自…

Driller复现

文章:(2016-NDSS)Driller - Argumenting Fuzzing Through Selective Symbolic Execution 安装 环境:ubuntu 16.04 下载docker镜像:pull shellphish/mechaphish 运行镜像:docker run -it --privileged shellphish/mechaphish:la…

driller/shellphish安装与简单例程

因为在学习过程中有用到driller,但是安装过程中经常碰到奇奇怪怪的问题,尤其是angr 8发布后全面放弃python2,导致兼容性较差,本人将最后安装成功的过程记录下来,仅供参考。注,时间为2018.11.27,…

Driller分析与改进(二)

Author:ZERO-A-ONEDate:2021-03-20 这个部门我们主要介绍Driller的安装与使用,我使用的环境是腾讯云的VPS: CPU:Intel Xeon Platinum 8255C CPU 2.50GHz * 4vCPUsRAM:4GBOS:Ubuntu 18.04 LTS…

Driller分析与改进(一)

Author:ZERO-A-ONEDate:2021-03-19 一、引子 ​ 关注我的读者们应该对模糊测和符号执行两种技术已经十分熟悉了,那我觉得读者们一定会自然而然的联想到,是不是会存在一种可能性,将模糊测试和符号执行相结合起来&…

Android UVCCamera问题——Cause: null pointer dereference

记录遇到的问题。 采用的开源库链接:https://github.com/saki4510t/UVCCamera 使用该库预览的时候,如果拔掉uvc设备,会造成异常闪退。 signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 Cause: null pointer dereferencer0 000…

null pointer exception解决方法

null pointer exception简称空指针异常 例如在一个 public class Student { private int stuId; private String stuName; private int age; Address addr; } 1.Address addrnew Address();可以直接定义 然后在main函数里可以直接 (Student stunew Stud…

null pointer

init 忘记加return true; 额,记录下,以后不再犯此错。

【Leetcode记录】runtime error: member access within null pointer of type ‘ListNode‘ (solution.cpp) SUMMA

环形链表快慢指针: runtime error: member access within null pointer of type ‘ListNode’ (solution.cpp) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:20:19 大白话讲就是编译器不知道你正在使用的是不是空指针中的元素&#…

runtime error: reference binding to null pointer of type ‘int‘ (stl_vector.h)

报错原因:没有指定数组大小 vector在还没有分配任何空间时还不能像数组一样用下标形式去访问vector的(v[0]也不行)!!!否则编译通过但报运行错误runtime error! vector是动态数组,像…

runtime error: member access within null pointer of type ‘TreeNode‘ (solution.cpp)

在做Leetcode题的时候,我做到了一个关于对称二叉树题目,题目如下: 经过编译得出的结果如下: 第14行代码发生了报错 经过我的查找资料和修改发现,在某行访问的指针为空的时候,通常情况下表明程序未对NULL情况…

LeetCode报错:runtime error: member access within null pointer of type ‘struct ListNode‘

错误题目:876. 链表的中间结点 错误原因:试图使用空指针 解决方法:找出等价判断条件进行替换,排除对空指针的引用。 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };…

Leetcode 206 runtime error: member access within null pointer of type

错误如下:当测试案列是[ ]的时候解决办法:将错误处改为if (head NULL || head->next NULL) 原因:由于或和与具有短路效应,左边为真,则直接不判断,当输入为空的时候,null->next不存在&am…

QT警告 zero as null pointer constant原因分析

最近写QT5.9中写代码时遇到了一个警告: 虽然不会影响程序正常编译,但是作为一个有潜在强迫症倾向的人,,必须把它消灭,百度一下,结果就出来了 虽然百度结果明明白白,但是,作为一个工…

力扣报错runtime error: load of null pointer of type ‘int‘解决思路

记录本算法小白刷力扣的这道题遇到的报错 349. 两个数组的交集https://leetcode.cn/problems/intersection-of-two-arrays/ 出现报错的代码 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* intersection(int* nums1, int nums1Size,…

warning C6011: dereferencing NULL pointer <name>

去官网查下这个警告就知道解决办法了 https://docs.microsoft.com/en-us/cpp/code-quality/c6011?viewmsvc-170&viewFallbackFromvs-2019 “To resolve the issue, validate the pointer before use.”:使用前验证下就ok了 if(pointerNULL).......

Unable to handle kernel NULL pointer dereference at virtual address 00000000【转】

本文转载自:https://blog.csdn.net/hpu11/article/details/72628052 这说明是非法指针的使用,才导致系统出错。 [ 1023.510000] Unable to handle kernel NULL pointer dereference at virtual address 00000000[ 1023.520000] pgd c0004000[ 1023.5200…

ncnn报null pointer dereference异常

错误描述 基于c使用ncnn封装了深度学习模型,并将c项目打包成为了一个so库给Android调用,在打包成为so库之前,在Windows系统以及Ubuntu系统利用电脑的camera测试过都能正常运行没有任何异常,打包成so库之后给Android的开发人员调用…

win10用黑屏命令查看正在使用的或使用过的wifi密码

win10用黑屏命令查看正在使用的或使用过的wifi密码 打开黑屏终端: 方法一:win菜单键 R打开运行窗口,输入:cmd ,就可以进入黑屏终端了。方法二:回到桌面,点击win菜单图标旁的搜索,输…