Skip to content

黑名单

🚫 用黑名单过滤危险/无关目标,防 SSRF。

标志

标志默认说明
--enable-blacklisttrue启用黑名单检查
--default-blacklisttrue使用内置默认规则
--blacklist-pattern自定义规则(可多次,支持 CIDR 与正则)
--blacklist-file规则文件路径

四类规则来源可叠加,最终合并为检查集:

URL 过黑名单关卡的实际判定时序:

默认黑名单(节选)

默认屏蔽危险地址,防 SSRF 与内网探测:

  • 🏠 本地与内网:localhost127.0.0.0/810.0.0.0/8172.16.0.0/12192.168.0.0/16169.254.0.0/16fc00::/7
  • ☁️ 云元数据:169.254.169.254(AWS/GCP/DO)、metadata.google.internalmetadata.internalmetadata.service
  • 🔐 敏感内部服务:consul.service.consulvault.service.consul
  • 🗄️ 数据库端口:*:1433(MSSQL)、*:3306(MySQL)、*:5432(PG)、*:6379(Redis)

示例

bash
# 默认(启用默认规则)
snir scan file -f urls.txt

# 追加自定义规则
snir scan file -f urls.txt --blacklist-pattern "internal.local" --blacklist-pattern "10.0.0.0/8"

# 规则文件
snir scan file -f urls.txt --blacklist-file blocklist.txt

# 仅自定义、不用默认
snir scan file -f urls.txt --default-blacklist=false --blacklist-pattern "bad.example"

# 完全禁用(危险,仅在受控内网扫描时)
snir scan file -f hosts.txt --enable-blacklist=false

规则语法

支持:

  • CIDR10.0.0.0/8
  • 正则.*:6379 匹配任意 host 的 6379 端口
  • 字面量localhost

规则文件格式

每行一条规则,支持 # 注释。

安全建议

SSRF 防护底线,切勿随意关闭

  • ✅ 生产环境务必保留默认黑名单--default-blacklist=true,这也是默认值)
  • ✅ 对用户输入的目标先过黑名单再采集,防 SSRF 打内网/云元数据
  • ⚠️ 仅在授权内网扫描时才考虑 --enable-blacklist=false
  • ❌ 切勿为图省事在生产对外服务上禁用——云元数据 169.254.169.254 可泄露临时凭证

详见 安全注意

下一步

基于 MIT 许可发布