模糊测试(Fuzzing)技术是如何在安全测试中发挥作用的呢?

2026-04-27 21:5962阅读0评论建站教程
  • 内容介绍
  • 文章标签
  • 相关推荐

模糊测试到底是个啥子玩意儿?

先说一句, 模糊测试不是那种“模糊不清、含糊其辞”的技术,而是把随机乱七八糟的输入塞进程序里让它哭喊、 还行。 崩溃、甚至直接自毁。

很多人说它是黑盒、 白盒、灰盒混合体,我听了只想说:别给我来这些高大上的标签, 呵... 直接把代码炸得稀巴烂就行!

安全测试中的模糊测试(Fuzzing)技术介绍

随手一扔的种子文件

所谓种子,就是你先准备的一堆合法输入。然后变异器会在这些种子的基础上随意添加、删除、替换字符。比如把一个 JSON 的冒号改成分号,或者把 JPEG 文件的头部换成 PNG。

别犹豫... 注意:如果你用的是 Windows 系统, 记得打开 cmd.exe 把路径里的空格都删掉——不然 Fuzzer 会直接报错,然后你又要去找原因,这根本不是“模糊”而是“纠结”。

常见的几类模糊测试方式

  • 盲目模糊: 完全不看协议,只是随机生成字节流。
  • 基于变异: 用已有样本做基底, 进行位翻转、块复制等操作。
  • 基于生成: 先写一套语法规则,再让引擎按规则产数据。
  • 智能模糊: 用机器学习预测哪种变体更可能命中深层路径。

工具乱弹琴——别指望它们有统一的 UI!

AFL、 LibFuzzer、Honggfuzz…这些名字听起来像是乐队,却都是各自“自嗨”一套的 Fuzzer。AFL 喜欢插桩,还能输出覆盖率图;LibFuzzer 则直接嵌进 LLVM 编译链;Honggfuzz 声称轻量却经常卡死在内存泄漏检测上。

阅读全文

模糊测试到底是个啥子玩意儿?

先说一句, 模糊测试不是那种“模糊不清、含糊其辞”的技术,而是把随机乱七八糟的输入塞进程序里让它哭喊、 还行。 崩溃、甚至直接自毁。

很多人说它是黑盒、 白盒、灰盒混合体,我听了只想说:别给我来这些高大上的标签, 呵... 直接把代码炸得稀巴烂就行!

安全测试中的模糊测试(Fuzzing)技术介绍

随手一扔的种子文件

所谓种子,就是你先准备的一堆合法输入。然后变异器会在这些种子的基础上随意添加、删除、替换字符。比如把一个 JSON 的冒号改成分号,或者把 JPEG 文件的头部换成 PNG。

别犹豫... 注意:如果你用的是 Windows 系统, 记得打开 cmd.exe 把路径里的空格都删掉——不然 Fuzzer 会直接报错,然后你又要去找原因,这根本不是“模糊”而是“纠结”。

常见的几类模糊测试方式

  • 盲目模糊: 完全不看协议,只是随机生成字节流。
  • 基于变异: 用已有样本做基底, 进行位翻转、块复制等操作。
  • 基于生成: 先写一套语法规则,再让引擎按规则产数据。
  • 智能模糊: 用机器学习预测哪种变体更可能命中深层路径。

工具乱弹琴——别指望它们有统一的 UI!

AFL、 LibFuzzer、Honggfuzz…这些名字听起来像是乐队,却都是各自“自嗨”一套的 Fuzzer。AFL 喜欢插桩,还能输出覆盖率图;LibFuzzer 则直接嵌进 LLVM 编译链;Honggfuzz 声称轻量却经常卡死在内存泄漏检测上。

阅读全文