开始测试
执行下面的命令,就可以开始测试了:
wfuzz fuzz openssl-fuzz
经过短暂的启动检查后,您可以看到如下的界面:
┌───────────────────────────────────────────────────────────────────────────────┐
│██╗ ██╗███████╗██╗ ██╗███████╗███████╗ by Wingtecher 1.6.10-fast │
│██║ ██║██╔════╝██║ ██║╚══███╔╝╚══███╔╝ │
│██║ █╗ ██║█████╗ ██║ ██║ ███╔╝ ███╔╝ Platform: │
│██║███╗██║██╔══╝ ██║ ██║ ███╔╝ ███╔╝ https://wingfuzz.com │
│╚███╔███╔╝██║ ╚██████╔╝███████╗███████╗ Login as: │
│ ╚══╝╚══╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝ USERNAME │
├──────────────────────────────────────────┬────────────────────────────────────┤
│ Regression │ Fuzz │
├──────────────────────────────────────────┴────────────────────────────────────┤
│ App: openssl-fuzz Module: ssl_heartbleed │
├───────────────────────────────────────────────────────────────────────────────┤
│ ██████████████ │
├─────────────────────────────┬────────────────────────┬────────────────────────┤
│Status: Active │Test Case: 2 │ │
│Job: 1 │Path: 0 │Crash: 1 │
│CPU Time: 0s │Execution: 2 │ │
├─────────────────────────────┴────────────────────────┴────────────────────────┤
│Edges count: 2201 │
│Case eeea9c8e0b46f0122a4d871a6cc7d76d2a3079a8 is crashed during inspecting │
│New problem discovered: eeea9c8e0b46f0122a4d871a6cc7d76d2a3079a8, type: Undefin│
│New case discovered: f9916051e42aad872abf5490a795934339dc1578, Total count: 2 │
│Edges count: 2575 │
└───────────────────────────────────────────────────────────────────────────────┘
看到这个界面说明您的测试已经成功启动了。经过一小段时间之后,您应该可以看到Crash的数字变成了2。说明已经成功检出了2个问题。 接下来您可以使用以下步骤,在平台上看到详细的错误报告。
- 在平台导航菜单中找到「应用测试」 -> 「项目管理」。
- 在右边的视图中找到
openssl-fuzz
这个应用。 - 进入详情后,选择模块
ssl_heartbleed
。 - 点击进去后,在下方的缺陷列表就能看到发现问题,如果您的步骤完全按照教程进行的话,此处应该能看到两个问题,其一是一个未定义行为的null-pointer-use问题,其二是内存问题的heap-buffer-overflow-read问题。这里这个内存问题就是著名的Heartbleed漏洞。
- 点击缺陷编号进入页面,可以看到错误详情,下方会有两个调用堆栈,第一个是触发此问题的调用栈,第二个是这段内存申请时的调用栈。
如果您想了解如何在自己的项目上集成模糊测试,请继续阅读下一章 集成我的项目
关于 「应用」、「模块」 等概念,您可以参考 进阶使用 章节。
关于 「内存问题」、「未定义行为」 等错误类型,您可以参考 支持的问题类型 章节。