santhreal/attackstr

GitHub: santhreal/attackstr

一个基于 TOML 语法的攻击载荷组合生成引擎,让安全扫描器无需重编译即可动态扩展 payload 库。

Stars: 0 | Forks: 0

# attackstr 从 TOML 语法生成攻击字符串。你可以在 TOML 文件中定义 context、technique、变量和 encoding。attackstr 会将它们扩展为所有组合,并返回带有元数据的结构化 payload。 ``` cargo add attackstr ``` ``` use attackstr::PayloadDb; let mut db = PayloadDb::new(); db.load_toml( r#" [grammar] name = "inline-example" sink_category = "sql-injection" [[contexts]] name = "quoted" prefix = "'" suffix = " --" [[techniques]] name = "tautology" template = "{prefix} OR 1=1{suffix}" [[encodings]] name = "raw" transform = "identity" "#, ) .unwrap(); for payload in db.payloads("sql-injection") { println!("{}", payload.text); } ``` ## 为什么开发这个工具 每个安全扫描器都需要攻击 payload。SQLi、XSS、命令注入、SSTI、SSRF。大多数工具将它们硬编码为字符串数组。当你想要添加新的 encoding 或 context 时,你需要修改 Rust 代码并重新编译。 attackstr 将 payload 移至 TOML 文件中。只需编辑文件即可添加新的 technique。无需重新编译。语法扩展引擎会处理各种组合情况。 ## 你将获得 - TOML 语法文件定义 context、technique、变量和 encoding - 笛卡尔积扩展:context x technique x 变量 x encoding - 19 种内置 encoding(URL、hex、unicode、base64、HTML 实体、charcode 等) - 用于 WAF 绕过变体的 7 种变异策略(大小写、空格、null bytes、SQL 注释、HTML、unicode 规范化) - 自定义 encoding 注册(引入你自己的转换方式) - 污点标记,用于追踪 payload 穿过目标的流程 - 加载时进行语法验证,并提供可操作的错误信息 - 所有设置均支持 TOML 配置 - 所有类型均支持 Serde(序列化/反序列化 payload、缓存它们、通过网络发送它们) ## 语法格式 ``` [grammar] name = "sql-injection" sink_category = "sql-injection" [[contexts]] name = "string-break" prefix = "';" suffix = "" [[techniques]] name = "union-based" template = "{prefix} UNION SELECT {column}{suffix}" [[columns]] value = "NULL,NULL,NULL" [[columns]] value = "1,2,3" [[encodings]] name = "raw" transform = "identity" [[encodings]] name = "url" transform = "url_encode" ``` 此语法可生成 4 个 payload(2 列 x 1 个 technique x 2 种 encoding)。 ## 配置 从 TOML 加载设置: ``` max_per_category = 1000 deduplicate = true marker_prefix = "SLN" target_runtime = ["php", "node"] exclude_categories = ["xxe"] grammar_dirs = ["./grammars", "/usr/share/grammars"] ``` ## 变异 从任何 payload 生成规避变体: ``` use attackstr::mutate_all; let variants = mutate_all("UNION SELECT 1,2,3"); // Produces: case alternation, whitespace variants, SQL comment injection, // null byte insertion, unicode normalization bypasses, mixed encodings ``` ## 贡献 欢迎提交 Pull request。没有完美的 crate 这回事。如果你发现了一个 bug、更好的 API,或者仅仅是一个粗糙的边缘情况,请提交 PR。我们会迅速进行审查。 ## 许可证 MIT。版权所有 2026 CORUM COLLECTIVE LLC。联系:contact@santh.dev [![crates.io](https://img.shields.io/crates/v/attackstr.svg)](https://crates.io/crates/attackstr) [![docs.rs](https://docs.rs/attackstr/badge.svg)](https://docs.rs/attackstr)
标签:Python安全, Rust库, TOML, Web安全, 可视化界面, 蓝队分析, 载荷生成, 通知系统