关于 performing-fuzzing-with-aflplusplus
该技能介绍使用 AFL++ 对编译后的二进制文件进行覆盖引导模糊测试,适合安全测试人员检查程序缺陷,并提供从插桩、语料准备到崩溃分析的流程。
主要功能
- 01对目标程序进行插桩
- 02准备并精简种子语料
- 03通过输入变异探索代码路径
- 04监控覆盖率与测试进度
- 05缩减并分析崩溃样本
适用场景
- 01测试有源码的编译程序
- 02通过 QEMU 测试仅有二进制的目标
- 03检查输入解析器的崩溃与挂起
- 04整理可复现的崩溃报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-fuzzing-with-aflplusplus安装后在 Claude Code 中输入/performing-fuzzing-with-aflplusplus确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
使用 AFL++ 进行模糊测试
概述
AFL++ 是 American Fuzzy Lop(AFL)的一个由社区维护的分支,为已编译的二进制文件提供覆盖率引导的模糊测试。它在编译时对目标进行插桩,或通过 QEMU/Unicorn 模式对仅有二进制文件的情况进行模糊测试,然后对输入语料进行变异以发现新的代码路径。AFL++ 包含高级调度策略(MOpt、rare)、自定义变异器、用于解决输入到状态比较的 CMPLOG,以及用于高吞吐量模糊测试的持久模式。
何时使用
- 在开展涉及使用 aflplusplus 进行模糊测试的安全评估时
- 在针对相关安全事件遵循事件响应流程时
- 在执行计划内的安全测试或审计活动时
- 在通过动手测试验证安全控制措施时
前置条件
- 已安装 AFL++(
apt install afl++或从源码构建) - 目标二进制文件的源代码(用于编译时插桩)或用于仅有二进制文件的 QEMU 模式
- 目标格式的有效输入的初始种子语料
- 已配置 /proc/sys/kernel/core_pattern 的 Linux 系统
步骤
- 使用
afl-cc或afl-clang-fast对目标二进制文件进行插桩 - 准备包含最小有效输入的种子语料目录
- 使用
afl-cmin最小化语料以移除冗余种子 - 使用适当的标志运行
afl-fuzz(-i input -o output) - 通过 afl-whatsup 和 UI 统计信息监控模糊测试进度
- 使用
afl-tmin最小化和 CASR/GDB 分析来分诊崩溃 - 报告具有复现步骤的唯一崩溃
预期输出
+++ Findings +++
unique crashes: 12
unique hangs: 3
last crash: 00:02:15 ago
+++ Coverage +++
map density: 4.23% / 8.41%
paths found: 1847
exec speed: 2145/sec
评论
支持 Markdown