开始我的第一次模糊测试

终于准备好了!

执行下面的命令,就可以开始测试了:

wfuzz fuzz first-fuzz

经过短暂的启动检查后,您可以看到如下的界面:

┌───────────────────────────────────────────────────────────────────────────────┐
│██╗    ██╗███████╗██╗   ██╗███████╗███████╗  by   Wingtecher    1.6.10-fast    │
│██║    ██║██╔════╝██║   ██║╚══███╔╝╚══███╔╝                                    │
│██║ █╗ ██║█████╗  ██║   ██║  ███╔╝   ███╔╝   Platform:                         │
│██║███╗██║██╔══╝  ██║   ██║ ███╔╝   ███╔╝    https://wingfuzz.com              │
│╚███╔███╔╝██║     ╚██████╔╝███████╗███████╗  Login as:                         │
│ ╚══╝╚══╝ ╚═╝      ╚═════╝ ╚══════╝╚══════╝  USERNAME                          │
├──────────────────────────────────────────┬────────────────────────────────────┤
│                Regression                │                Fuzz                │
├──────────────────────────────────────────┴────────────────────────────────────┤
│   App: first-fuzz    Module: echo                                             │
├───────────────────────────────────────────────────────────────────────────────┤
│                        ███████████                                            │
├─────────────────────────────┬────────────────────────┬────────────────────────┤
│Status:     NULL             │Test Case:      0       │                        │
│Job:        1                │Path:           0       │Crash:          0       │
│CPU Time:   0s               │Execution:      0       │                        │
│Start:      08/10 20:43      │Exec/Sec:       0       │                        │
├─────────────────────────────┴────────────────────────┴────────────────────────┤
│Fuzzer #1: Starting fuzzer instance afl++                                      │
│Fuzzer #1: Lifecycle starting                                                  │
│Fuzzer #1: Lifecycle running                                                   │
│                                                                               │
└───────────────────────────────────────────────────────────────────────────────┘

看到这个界面说明您的测试已经成功启动了。这个例程在模糊测试面前太简单了,您应该可以立即看到Crash的数字变成了1。 接下来您可以使用以下步骤,在平台上看到详细的错误报告。

  1. 在平台导航菜单中找到「应用测试」 -> 「项目管理」。
  2. 在右边的视图中找到 first-fuzz 这个应用。
  3. 进入详情后,选择模块 echo
  4. 点击进去后,在下方的缺陷列表就能看到一个缺陷,类型为内存问题,详情中有stack-buffer-overflow-read。
  5. 点击缺陷编号进入页面,可以看到缺陷详情,下方会有触发时的调用栈。

默认参数下模糊测试会一直运行下去,当您想停止测试时,输入 Ctrl-C 就可以停止。

为什么测试是在本地运行,而不是云端运行?

WINGFUZZ同时提供本地测试远程测试两种模式。

本地测试的模式更适合测试驱动开发、调试的过程,因为可以更高效地获取系统反馈,开展debug工作。远程测试则适合驱动开发完成后,利用云端算力开展实际测试。因此,在本文档的前几个章节,我们都将基于本地测试模式,介绍WINGFUZZ的基础用法,便于用户及时发现问题。

而远程测试模式当然也已经开放,详情可参见【远程测试】章节。

如果您完成了这个例子,想要更进一步了解模糊测试在实际项目上如何使用,请继续查看【开始实战测试】章节。

关于 「应用」、「模块」 等概念,您可以参考 进阶使用 章节。

关于 「内存问题」、「未定义行为」 等错误类型,您可以参考 支持的问题类型 章节。