ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

HaE规则编写实战指南:5分钟写出第一条可用的正则提取规则

HaE规则编写实战指南:5分钟写出第一条可用的正则提取规则 HaE规则编写实战指南5分钟写出第一条可用的正则提取规则【免费下载链接】HaEHaE - Highlighter and Extractor, Empower ethical hacker for efficient operations. 赋能白帽高效作战项目地址: https://gitcode.com/gh_mirrors/ha/HaE这篇文章解决一个问题你想在HaE里自定义高亮和提取逻辑却不知道该往哪个字段填什么、填完为什么没效果。读完你能独立写出第一条可用的HaE规则会用多分组模板做精确提取知道匹配不到时先查哪里最后还能把规则导出给团队复用。看懂一条HaE规则长什么样HaE的规则本质上就是四样东西一段正则表达式、一个结果模板、一个高亮颜色、一个生效范围。它们写在YAML文件里YAML是一种用缩进和冒号描述键值对的文本格式按组Group→ 规则Info两级组织字段定义在 Info.java 中。最小可用的规则文件长这样rules: - name: 密钥提取组 rules: - enabled: true name: AWS密钥检测 regex1: AKIA[0-9A-Z]{16} regex2: format: AWS Key: {0} color: FF0000 scope: response engine: dfa sensitive: true每个字段用一句话说清楚字段大白话解释示例值enabled规则开关false时整条规则不生效truename规则名字给队友看的标识AWS密钥检测regex1主正则决定到底匹配什么内容AKIA[0-9A-Z]{16}regex2二次过滤作用在regex1的匹配结果上format结果展示模板{0}代表匹配到的内容AWS Key: {0}color高亮颜色RGB十六进制FF0000scope匹配范围request / response / bothresponseengine正则引擎nfa或dfadfasensitive是否敏感信息界面会做脱敏展示true两个概念先记住一句话版本dfa引擎——匹配快、不支持回溯适合简单模式的长文本。nfa引擎——支持回溯和复杂分组提取适合嵌套结构。你不需要背这些。先按上面的样子把一条规则写出来跑通之后再回来对照字段表改参数。第一条规则怎么写从字段到保存操作路径很短在规则管理界面点Add弹出编辑对话框后依次填名称、regex1、format、color选scope和engine勾sensitive点OK保存。规则组的创建、重命名、删除都在 Rule.java 对应的管理界面里完成一条组里可以挂多条规则。动手前常用的正则写法扫一眼即可写法含义例子\d\w\s数字 / 字母数字下划线 / 空白字符\d{4}匹配4位数字{n}{n,}{n,m}恰好n次 / 至少n次 / n到m次\d{2,4}.*?任意字符非贪婪尽量少吃标签内容提取常用(a\|b)匹配a或b(jpg\|png)颜色不用记全给新手指一个团队常用的约定颜色代码建议用途红FF0000敏感信息黄FFFF00警告内容橙FF9800可疑内容绿00FF00成功匹配你可以这样操作把上面文件里那条AWS规则原样填进对话框regex1就是AKIA[0-9A-Z]{16}format写AWS Key: {0}scope选responseengine选dfa。填完别急着关窗口先点Test按钮用一段包含AKIA1234567890ABCDEF的文本验证能高亮再保存。让规则又快又准多分组与引擎选择想从一段内容里抠出两个字段就在正则里打两个分组然后在format里分别引用。比如提取URL参数名和参数值- enabled: true name: URL参数提取 regex1: (\w)(\w) regex2: format: 参数名: {0} 值: {1}regex1命中useradmin时{0} 是user{1} 是adminformat把两者拼成你想要的展示文案。regex2适合先粗匹配、再细过滤的套路regex1先捞出一大块regex2在它结果上二次提取。比如匹配title(.*?)/title后regex2写$1就能只取第一个分组的内容format里再套一层文案。引擎怎么选看这个两行表引擎特点适用dfa快、不回溯、省内存简单模式、大段文本nfa支持回溯、复杂分组嵌套结构、需要捕获组性能上记三条就够了能用.*?就不用.*减少回溯。只关心响应体就别用bothscope收窄一半工作量。一条规则做三件事就拆成三条规则好调试也好关闭。正则匹配不到结果先查这三处规则没反应时90%是下面三个原因之一按顺序查查scope。最常见你把规则配成response却在请求里找内容或者反过来。打开规则看scope字段不确定就临时改成both验证确认是这里的问题再改回。查反斜杠转义。YAML里双引号字符串会吃一层转义正则需要\d时YAML双引号里得写\\d或者干脆把正则放进单引号里保持原样。这是新手匹配失败的第一大坑。查正则本身和性能。把正则单独拿出来对着目标文本测一遍如果文本很大还慢多半是.*加嵌套量词在疯狂回溯改非贪婪、换dfa或拆分规则。验证手段就在手边编辑对话框里的Test按钮可以直接试匹配。规则真正的解析和执行发生在 RuleProcessor.java排查疑难时翻这个文件看处理顺序最快。规则如何沉淀给团队导入导出与维护规则文件就是YAML天然适合团队共享你导出整个文件发给同事对方在自己的HaE里导入即可用序列化逻辑同样在 RuleProcessor.java 的rulesFormatAndSave方法里。维护上给三条约定能省掉很多扯皮按业务分组。一个组对应一类目标比如云服务密钥自定义协议解析组名即目录。用enabled代替删除。过时的规则关开关保留别直接删方便回溯。敏感规则必勾sensitive。标记后UI会脱敏展示避免密钥类明文到处跑。下一步行动挑一个你最近还在手工翻找的数据云密钥、内部ID、自定义协议字段都行按本文写一条规则用Test按钮验证后导出成YAML发给一个同事导入试用。想从源码层面理解规则处理可以克隆仓库阅读git clone --recurse-submodules https://gitcode.com/gh_mirrors/ha/HaE【免费下载链接】HaEHaE - Highlighter and Extractor, Empower ethical hacker for efficient operations. 赋能白帽高效作战项目地址: https://gitcode.com/gh_mirrors/ha/HaE创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表