尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

HaE规则编写指南:1 份最小配置 + 3 个真实场景,快速上手高亮与提取

HaE规则编写指南:1 份最小配置 + 3 个真实场景,快速上手高亮与提取 HaE规则编写指南1 份最小配置 3 个真实场景快速上手高亮与提取【免费下载链接】HaEHaE - Highlighter and Extractor, Empower ethical hacker for efficient operations. 赋能白帽高效作战项目地址: https://gitcode.com/gh_mirrors/ha/HaE翻流量和日志文件时想盯住某类关键信息却只能一条条肉眼扫这种活最费时间。HaEHighlighter and Extractor的自定义规则就是干这个的把找什么、在哪找、怎么显示写成一段配置之后所有匹配的流量自动高亮、自动提取。读到这里读完你会知道规则 YAML 长什么样、每个字段管什么并能独立写出自己的前几条规则匹配不上时也有章法可循。3分钟上手跑通你的第一条规则第一步新建规则组。打开 HaE 的规则管理入口点Add建一个规则组组的作用只是方便归类管理比如业务敏感串、接口参数。第二步组内添加规则。给规则起个名字把匹配的正则表达式填进主正则一栏作用域先选response再点Test按钮把一小段样例文本贴进去看能不能命中。第三步确认无误后保存。从这一刻起响应里凡是命中的内容都会按你设置的颜色高亮提取结果进列表。规则最终以 YAML 形式落盘最小可用形态长这样rules: - name: 业务敏感串 rules: - enabled: true name: 数据库连接串 regex1: jdbc:mysql://[^:]:[^] regex2: format: DB 连接串: {0} color: FFC107 scope: response engine: nfa sensitive: true翻译成人话建了一个组组里放一条启用的规则凡响应里出现jdbc:mysql://账号:密码的片段就标成琥珀色并提取成一条展示文本。整篇文章剩下的内容都在解释这十几行里每个词为什么这么填。规则长什么样把每个字段讲明白规则文件是 YAML顶层rules列表装着若干组每个组内部再放一组规则条目。每条规则的字段如下字段类型说明enabledboolean开关。临时停用不用删置false即可namestring规则名写清抓什么别用rule1这种regex1string主正则负责在原文里匹配并产生分组regex2string辅助正则对已匹配片段做二次过滤可留空formatstring展示模板用{0}、{1}引用分组colorstring高亮颜色6 位十六进制 RGB如FF0000scopestring作用域request/response/bothenginestring引擎nfa/dfasensitiveboolean是否敏感信息敏感结果会做脱敏展示下面四个字段值得展开说其余的边用边记就行。匹配表达式regex1 / regex2。主正则干两件事定位片段、产出分组。需要精细提取时regex2可以再对已匹配的内容过滤一层。分两层写比硬憋一条超长正则稳先用宽表达式圈住区域再用窄表达式挑字段两边都好调试。格式化模板format。{0}对应整个匹配{1}对应第一个括号分组以此类推。模板里想展示哪部分就引用哪部分不想展示的分组可以不写。作用域scope。它决定规则扫哪一侧request只扫请求response只扫响应both两边都扫。选错作用域是明明有内容却匹配不上的头号原因——泄露信息一般在响应入参一般在请求按场景选别偷懒全选both。引擎engine。nfa支持分组和反向引用是提取型规则的默认选择dfa扫描快适合特征固定、流量大的规则。规则多、流量猛的时候把不依赖分组的规则切到dfa开销会明显降下来。换三个真实场景练手场景一响应里的数据库连接串高亮业务应用经常把连接串甚至明文凭据随报错页吐出来。一条规则盯住它并标记为敏感- enabled: true name: JDBC 连接串 regex1: jdbc:mysql://(\S):(\S).*? regex2: format: 凭据 {1}:{2} - {0} color: FFC107 scope: response engine: nfa sensitive: true设计思路正则把账号、密码圈成{1}{2}两个分组format 模板把凭据提到最前面——一眼看到重点而不是先读一长串 URL。sensitive: true让它在结果列表里按敏感信息处理。场景二接口参数里的手机号提取登录、注册接口的请求体里经常携带手机号单独提出来便于统计- enabled: true name: 请求体手机号 regex1: (1[3-9]\\d{9}) regex2: format: 手机号: {1} color: 00FF00 scope: request engine: dfa sensitive: true设计思路1[3-9]\d{9}把 11 位手机号圈进分组 1模板只输出号码本身这类接口流量大用dfa更省资源。作用域锁在request不浪费扫描。场景三日志文件里的业务关键字定位HaE 的文件版HaEFile可以扫本地日志把关键事件标记出来- enabled: true name: 订单状态变更 regex1: \\bORDER_\\w\\b regex2: format: 事件: {0} color: 0000FF scope: file engine: nfa sensitive: false设计思路\b卡住单词边界避免把PRE_ORDER_X里的子串误命中整条日志里凡是ORDER_开头的事件标记都会被标蓝翻文件时不用逐行读。匹配不出来照这张清单排查表达式报语法错误。先在 Test 框里单独验证表达式别在流量里盲试。Java 正则和 JavaScript 正则的转义习惯不同从别的工具拷来的表达式容易在\和括号配对上出问题。动作把表达式单独复制到本地正则调试环境跑一遍修到通过再回 HaE。匹配结果为空。按顺序查四件事scope 是否选对——内容到底在请求侧还是响应侧用 Test 按钮贴一段确定含目标内容的原文确认表达式本身能命中边界字符是否多打了^、\b之类的锚点把匹配卡死了enabled是否还是true——改完规则忘了开是高频事故。扫描变慢。动作依次是把贪婪的.*换成非贪婪.*?能写\S、\d就别用.*特征固定的规则切dfa把一条超长正则拆成几条短规则分别命中再各自配 format。拆分后每条都简单整体反而更快。把你的规则发出去规则文件就是 YAMLHaE 支持导入导出导出后可以直接发给同事或者存档到版本库里做团队基线。社区维护的规则集放在仓库的规则示例目录中定期更新导入即用。自己写好的规则组整理成 YAML 提交一份 PR被合并后大家都能直接导入——好用的规则多流通一份就是少写一份。写在最后HaE 规则的核心就三层正则负责定位format 负责呈现scope 和 engine 负责把扫描控制在该去的地方。先把一条规则跑通再按具体场景调细节比死记字段有效得多。现在就打开 HaE新建一条规则用 Test 按钮反复验证跑通后把 YAML 导出分享给你的团队。附正则速查片段含义\d/\w/\s数字 / 字母数字下划线 / 空白.*?非贪婪尽量少匹配\b单词边界([a-z])分组供 format 的{1}引用【免费下载链接】HaEHaE - Highlighter and Extractor, Empower ethical hacker for efficient operations. 赋能白帽高效作战项目地址: https://gitcode.com/gh_mirrors/ha/HaE创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表