基于TruffleHog的字母数字密码扫描正则表达式需求
针对TruffleHog的3个秘密扫描正则表达式(覆盖指定样本)
以下是3个满足需求的正则表达式,分别适配不同场景,均符合密码规则:仅含字母数字、必须包含大小写字母和数字、被双引号或空格包围。
1. 适配Docker/Helm登录命令行的双引号密码
专门匹配docker login或helm registry login命令中-p参数后的密码:
(?<=-p ")(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{20,}(?=")
- 匹配逻辑:通过正向后顾定位
-p "的位置,用正向断言确保密码包含大写、小写字母和数字,匹配长度20以上的纯字母数字字符串,直到闭合双引号结束。 - 覆盖样本:第1、3个样本中的密码。
2. 适配独立的空格包围密码
匹配独立存在、前后为空格(或行首/行尾)的符合规则的密码:
(?<!\S)(?=.*[A-Z]{2,})(?=.*[a-z]{2,})(?=.*\d{2,})[A-Za-z\d]{15,}(?!\S)
- 匹配逻辑:负向后顾/前瞻确保密码前后是空白字符(或行边界),断言要求至少2个大写、2个小写字母和2个数字,匹配长度15以上的纯字母数字字符串。
- 覆盖样本:第2个样本。
3. 通用型匹配(覆盖所有场景)
同时适配双引号包围和空格包围的所有符合规则的密码:
(?:(?<=")|(?<!\S))(?=.*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{15,}(?:(?=")|(?!\S))
- 匹配逻辑:通过非捕获组同时处理双引号前导和空格前导的情况,断言确保密码包含大小写字母和数字,匹配长度15以上的纯字母数字字符串,结尾匹配双引号或空白边界。
- 覆盖样本:所有3个样本。
内容的提问来源于stack exchange,提问作者Saranya Unni
相关产品推荐
相关产品推荐

