fuzzing-course

Teaches coverage-guided fuzzing methodology with AFL++, FuzzTest, and Honggfuzz for vulnerability discovery.

Updated Sep 17, 2026
One-click install
npx skills add https://github.com/karenrebecag/spec-driven-standards --skill fuzzing-course-karenrebecag
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fuzzing-course
Source: https://github.com/karenrebecag/spec-driven-standards/tree/main/plugins/security/skills/offensive-fuzzing-course
Command: npx skills add https://github.com/karenrebecag/spec-driven-standards --skill fuzzing-course-karenrebecag

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Learning to find memory corruption vulnerabilities requires structured, hands-on practice with real fuzzing tools, and most engineers lack a guided path from basic AFL++ runs to triaging crashes in production parsers. ## Core Features & Use Cases - Coverage-Guided Fuzzing Labs: Step-by-step AFL++ setup, instrumentation with sanitizers (ASAN/UBSAN), seed corpus generation, and parallel master/slave fuzzing campaigns. - Multiple Fuzzer Workflows: Covers AFL++ for whole programs, Google FuzzTest for in-process property-based fuzzing of C++ functions, and Honggfuzz, with guidance on when each fits. - Crash Triage and Real CVE Case Studies: Minimization with afl-tmin, clustering with casr-afl, and analysis of real bugs like CVE-2024-47606 (GStreamer) and CVE-2023-4863 (libWebP). - Use Case: A security engineer sets up a fuzzing campaign against an image parser, builds a minimized seed corpus, runs parallel AFL++ instances with sanitizers enabled, and triages the resulting crashes for exploitability. ## Quick Start Walk me through setting up AFL++ with AddressSanitizer to fuzz a C parser and triage any crashes it finds.

Frequently Asked Questions about fuzzing-course

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up AFL++ to fuzz a C program?

Install LLVM and build AFL++ from source, then compile the target with afl-clang-fast and run afl-fuzz with a seed input directory. The course provides full commands including core pattern configuration and sanitizer options like AFL_USE_ASAN.

What is the difference between AFL++ and Google FuzzTest?

AFL++ fuzzes whole programs or binaries externally, while FuzzTest runs in-process inside GoogleTest binaries using FUZZ_TEST macros. FuzzTest suits fuzzing individual C++ functions like parsers when you have source code and existing unit tests.

How do I triage and deduplicate fuzzer crashes?

Use afl-tmin to minimize a crashing input while preserving the crash, then cluster crashes with casr-afl from the CASR tools. AddressSanitizer reports and GDB with GEF help identify unique stack traces and root causes.

Why does my fuzzing campaign find no crashes?

Real targets often require hours or days of fuzzing, and hardened code may yield nothing quickly. Improve results with a minimized corpus of valid inputs, dictionaries, parallel master/slave instances, and sanitizers that turn subtle bugs into immediate crashes.

Does seed corpus quality affect fuzzing results?

Yes, valid structured seeds let the fuzzer reach deep parsing logic instead of failing early validation. Use afl-cmin to remove redundant files and afl-tmin to shrink inputs while preserving coverage.