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
[](https://crates.io/crates/attackstr)
[](https://docs.rs/attackstr)
标签:Python安全, Rust库, TOML, Web安全, 可视化界面, 蓝队分析, 载荷生成, 通知系统