attackstr 0.2.2

Grammar-based security payload generation - TOML-driven, composable, encoding-aware
Documentation
use attackstr::{
    mutate_all, mutate_case, mutate_encoding_mix, mutate_sql_comments, mutate_whitespace,
};

fn main() {
    let payload = "UNION SELECT 1";

    println!("case mutations:");
    for variant in mutate_case(payload) {
        println!("  {variant}");
    }

    println!("whitespace mutations:");
    for variant in mutate_whitespace(payload) {
        println!("  {variant}");
    }

    println!("encoding mix mutations:");
    match mutate_encoding_mix(payload, &["url_encode", "unicode", "html_entities"]) {
        Ok(variants) => {
            for variant in variants {
                println!("  {variant}");
            }
        }
        Err(e) => eprintln!("encoding error: {e}"),
    }

    println!("sql comment mutations:");
    for variant in mutate_sql_comments(payload) {
        println!("  {variant}");
    }

    println!("all mutations:");
    match mutate_all("<script>alert(1)</script>") {
        Ok(variants) => {
            for variant in variants.into_iter().take(10) {
                println!("  {variant}");
            }
        }
        Err(e) => eprintln!("encoding error: {e}"),
    }
}