HaE 3.3.3已更新 burpsuite敏感信息识别插件

HaE 3.3.3已更新 burpsuite敏感信息识别插件

HaE 简介

HaE是一款网络安全(数据安全)领域下的框架式项目,采用了乐高积木式模块化设计理念,巧妙地融入了人工智能大模型辅助技术,实现对HTTP消息(包含WebSocket)精细化的标记和提取。

通过运用多引擎的自定义正则表达式,HaE能够准确匹配并处理HTTP请求与响应报文(包含WebSocket),对匹配成功的内容进行有效的标记和信息抽取,从而提升网络安全(数据安全)领域下的漏洞和数据分析效率

随着现代化Web应用采用前后端分离的开发模式,日常漏洞挖掘的过程中,捕获的HTTP请求流量也相应增加。若想全面评估一个Web应用,会花费大量时间在无用的报文上。HaE的出现旨在解决这类情况,借助HaE,您能够有效减少测试时间,将更多精力集中在有价值且有意义的报文上,从而提高漏洞挖掘效率

注意事项:

  1. HaE 3.3版本开启了AI+新功能,该功能目前仅支持阿里的Qwen-Long模型(支持超长文本)和月之暗面的moonshot-v1-128k模型(支持短文本),请配置和使用时注意。
  2. HaE 3.0版本开始采用Montoya API进行开发,使用新版HaE需要升级你的BurpSuite版本(>=2023.12.1)。
  3. HaE 2.6版本后对规则字段进行了更新,因此无法适配<=2.6版本的规则,请用户自行前往规则转换页面进行转换。
  4. HaE官方规则库存放在Github上,因此点击Update升级HaE官方规则库时需使用代理(BApp审核考虑安全性,不允许使用CDN)。
  5. 自定义HaE规则必须用左右括号()将所需提取的表达式内容包含,例如你要匹配一个Shiro应用的响应报文,正常匹配规则为rememberMe=delete,在HaE的规则中就需要变成(rememberMe=delete)
HaE 3.3.3已更新 burpsuite敏感信息识别插件

使用方法

插件装载: Extender - Extensions - Add - Select File - Next

初次装载HaE会从Jar包中加载离线的规则库,如果更新的话则会向官方规则库地址拉取https://raw.githubusercontent.com/gh0stkey/HaE/gh-pages/Rules.yml,配置文件(Config.yml)和规则文件(Rules.yml)会放在固定目录下:

  1. Linux/Mac用户的配置文件目录:~/.config/HaE/
  2. Windows用户的配置文件目录:%USERPROFILE%/.config/HaE/

除此之外,您也可以选择将配置文件存放在HaE Jar包的同级目录下的/.config/HaE/中,以便于离线携带

规则释义

HaE目前的规则一共有8个字段,详细的含义如下所示:

字段含义
Name规则名称,主要用于简短概括当前规则的作用。
F-Regex规则正则,主要用于填写正则表达式。在HaE中所需提取匹配的内容需要用()将正则表达式进行包裹。
S-Regex规则正则,作用及使用同F-Regex。S-Regex为二次正则,可以用于对F-Regex匹配的数据结果进行二次的匹配提取,如不需要的情况下可以留空。
Format格式化输出,在NFA引擎的正则表达式中,我们可以通过{0}{1}{2}…的方式进行取分组格式化输出。默认情况下使用{0}即可。
Scope规则作用域,主要用于表示当前规则作用于HTTP报文的哪个部分。支持请求、响应的行、头、体,以及完整的报文。
Engine正则引擎,主要用于表示当前规则的正则表达式所使用的引擎。DFA引擎:对于文本串里的每一个字符只需扫描一次,速度快、特性少;NFA引擎:要翻来覆去标注字符、取消标注字符,速度慢,但是特性(如:分组、替换、分割)丰富。
Color规则匹配颜色,主要用于表示当前规则匹配到对应HTTP报文时所需标记的高亮颜色。在HaE中具备颜色升级算法,当出现相同颜色时会自动向上升级一个颜色进行标记。
Sensitive规则敏感性,主要用于表示当前规则对于大小写字母是否敏感,敏感(True)则严格按照大小写要求匹配,不敏感(False)则反之。

优势特点

  1. 功能:通过对HTTP报文的颜色高亮、注释和提取,帮助使用者获取有意义的信息,聚焦高价值报文
  2. 界面:清晰可视的界面设计,以及简洁的界面交互,帮助使用者更轻松的了解和配置项目,避免多按钮式的复杂体验
  3. 查询:将HTTP报文的高亮、注释和提取到的相关信息集中在一个数据面板,可以一键查询、提取信息,从而提高测试和梳理效率。
  4. 算法:内置高亮颜色的升级算法,当出现相同颜色时会自动向上升级一个颜色进行标记,避免屠龙者终成恶龙场景
  5. 管理:支持对数据的一键导出、导入,以自定义.hae文件的方式进行项目数据存储,便于存储和共享项目数据
  6. 实战:官方规则库和规则字段作用功能,都是基于实战化场景总结输出的,以此提高数据的有效性、精准性发现
  7. 智能:融入人工智能(AI)大模型API,对匹配的数据进行优化处理,提高数据式漏洞挖掘效率

项目地址

GitHub:
https://github.com/gh0stkey/HaE

下载地址

HaE-3.3.3.jar

规则(Rules.yml)

rules:
- group: Fingerprint
  rule:
  - name: Shiro
    loaded: true
    f_regex: (=deleteMe|rememberMe=)
    s_regex: ''
    format: '{0}'
    color: green
    scope: any header
    engine: dfa
    sensitive: true
  - name: JSON Web Token
    loaded: true
    f_regex: (eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9._-]{10,}|eyJ[A-Za-z0-9_\/+-]{10,}\.[A-Za-z0-9._\/+-]{10,})
    s_regex: ''
    format: '{0}'
    color: green
    scope: any
    engine: nfa
    sensitive: true
  - name: Swagger UI
    loaded: true
    f_regex: ((swagger-ui.html)|(\"swagger\":)|(Swagger UI)|(swaggerUi)|(swaggerVersion))
    s_regex: ''
    format: '{0}'
    color: red
    scope: response body
    engine: dfa
    sensitive: false
  - name: Ueditor
    loaded: true
    f_regex: (ueditor\.(config|all)\.js)
    s_regex: ''
    format: '{0}'
    color: green
    scope: response body
    engine: dfa
    sensitive: false
  - name: Druid
    loaded: true
    f_regex: (Druid Stat Index)
    s_regex: ''
    format: '{0}'
    color: orange
    scope: response body
    engine: dfa
    sensitive: false
- group: Maybe Vulnerability
  rule:
  - name: Java Deserialization
    loaded: true
    f_regex: (javax\.faces\.ViewState)
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: response body
    engine: dfa
    sensitive: false
  - name: Debug Logic Parameters
    loaded: true
    f_regex: ((access=)|(adm=)|(admin=)|(alter=)|(cfg=)|(clone=)|(config=)|(create=)|(dbg=)|(debug=)|(delete=)|(disable=)|(edit=)|(enable=)|(exec=)|(execute=)|(grant=)|(load=)|(make=)|(modify=)|(rename=)|(reset=)|(root=)|(shell=)|(test=)|(toggl=))
    s_regex: ''
    format: '{0}'
    color: cyan
    scope: request
    engine: dfa
    sensitive: false
  - name: URL As A Value
    loaded: true
    f_regex: (=(https?)(://|%3a%2f%2f))
    s_regex: ''
    format: '{0}'
    color: cyan
    scope: any
    engine: nfa
    sensitive: false
  - name: Upload Form
    loaded: true
    f_regex: (type\=\"file\")
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: response body
    engine: dfa
    sensitive: false
  - name: DoS Paramters
    loaded: true
    f_regex: ((size=)|(page=)|(num=)|(limit=)|(start=)|(end=)|(count=))
    s_regex: ''
    format: '{0}'
    color: cyan
    scope: request
    engine: dfa
    sensitive: false
- group: Basic Information
  rule:
  - name: Email
    loaded: true
    f_regex: (([a-z0-9]+[_|\.])*[a-z0-9]+@([a-z0-9]+[-|_|\.])*[a-z0-9]+\.((?!js|css|jpg|jpeg|png|ico)[a-z]{2,5}))
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: response
    engine: nfa
    sensitive: false
  - name: Chinese IDCard
    loaded: true
    f_regex: '[^0-9]((\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)))[^0-9]'
    s_regex: ''
    format: '{0}'
    color: orange
    scope: response body
    engine: nfa
    sensitive: true
  - name: Chinese Mobile Number
    loaded: true
    f_regex: '[^\w]((?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8})[^\w]'
    s_regex: ''
    format: '{0}'
    color: orange
    scope: response body
    engine: nfa
    sensitive: false
  - name: Internal IP Address
    loaded: true
    f_regex: '[^0-9]((127\.0\.0\.1)|(10\.\d{1,3}\.\d{1,3}\.\d{1,3})|(172\.((1[6-9])|(2\d)|(3[01]))\.\d{1,3}\.\d{1,3})|(192\.168\.\d{1,3}\.\d{1,3}))'
    s_regex: ''
    format: '{0}'
    color: cyan
    scope: response
    engine: nfa
    sensitive: true
  - name: MAC Address
    loaded: true
    f_regex: (^([a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5})|[^a-zA-Z0-9]([a-fA-F0-9]{2}(:[a-fA-F0-9]{2}){5}))
    s_regex: ''
    format: '{0}'
    color: green
    scope: response
    engine: nfa
    sensitive: true
- group: Sensitive Information
  rule:
  - name: Cloud Key
    loaded: true
    f_regex: (((access)(|-|_)(key)(|-|_)(id|secret))|(LTAI[a-z0-9]{12,20}))
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: any
    engine: nfa
    sensitive: false
  - name: Windows File/Dir Path
    loaded: true
    f_regex: '[^\w](([a-zA-Z]:\\(?:\w+\\?)*)|([a-zA-Z]:\\(?:\w+\\)*\w+\.\w+))'
    s_regex: ''
    format: '{0}'
    color: green
    scope: response
    engine: nfa
    sensitive: true
  - name: Password Field
    loaded: true
    f_regex: ((|'|")(|[\w]{1,10})([p](ass|wd|asswd|assword))(|[\w]{1,10})(|'|")(:|=)(
      |)('|")(.*?)('|")(|,))
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: response body
    engine: nfa
    sensitive: false
  - name: Username Field
    loaded: true
    f_regex: ((|'|")(|[\w]{1,10})(([u](ser|name|sername))|(account)|((((create|update)((d|r)|(by|on|at)))|(creator))))(|[\w]{1,10})(|'|")(:|=)(
      |)('|")(.*?)('|")(|,))
    s_regex: ''
    format: '{0}'
    color: green
    scope: response body
    engine: nfa
    sensitive: false
  - name: WeCom Key
    loaded: true
    f_regex: ((corp)(id|secret))
    s_regex: ''
    format: '{0}'
    color: green
    scope: response body
    engine: dfa
    sensitive: false
  - name: JDBC Connection
    loaded: true
    f_regex: (jdbc:[a-z:]+://[a-z0-9\.\-_:;=/@?,&]+)
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: any
    engine: nfa
    sensitive: false
  - name: Authorization Header
    loaded: true
    f_regex: ((basic [a-z0-9=:_\+\/-]{5,100})|(bearer [a-z0-9_.=:_\+\/-]{5,100}))
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: response body
    engine: nfa
    sensitive: false
  - name: Sensitive Field
    loaded: true
    f_regex: ((\[)?('|")?([\w]{0,10})((key)|(secret)|(token)|(config)|(auth)|(access)|(admin)|(ticket))([\w]{0,10})('|")?(\])?(
      |)(:|=)( |)('|")(.*?)('|")(|,))
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: response
    engine: nfa
    sensitive: false
- group: Other
  rule:
  - name: Linkfinder
    loaded: true
    f_regex: (?:"|')(((?:[a-zA-Z]{1,10}://|//)[^"'/]{1,}\.[a-zA-Z]{2,}[^"']{0,})|((?:/|\.\./|\./)[^"'><,;|*()(%%$^/\\\[\]][^"'><,;|()]{1,})|([a-zA-Z0-9_\-/]{1,}/[a-zA-Z0-9_\-/]{1,}\.(?:[a-zA-Z]{1,4}|action)(?:[\?|#][^"|']{0,}|))|([a-zA-Z0-9_\-/]{1,}/[a-zA-Z0-9_\-/]{3,}(?:[\?|#][^"|']{0,}|))|([a-zA-Z0-9_\-]{1,}\.(?:\w)(?:[\?|#][^"|']{0,}|)))(?:"|')
    s_regex: ''
    format: '{0}'
    color: gray
    scope: response body
    engine: nfa
    sensitive: true
  - name: Source Map
    loaded: true
    f_regex: (\.js\.map)
    s_regex: ''
    format: '{0}'
    color: pink
    scope: response body
    engine: dfa
    sensitive: false
  - name: HTML Notes
    loaded: true
    f_regex: (<!--.*?-->)
    s_regex: ''
    format: '{0}'
    color: magenta
    scope: response body
    engine: nfa
    sensitive: false
  - name: Create Script
    loaded: true
    f_regex: (\{[^{}]*\}\s*\[[^\s]*\]\s*\+\s*"[^\s]*\.js")
    s_regex: '"?([\w].*?)"?:"(.*?)"'
    format: '{0}.{1}'
    color: green
    scope: response body
    engine: nfa
    sensitive: false
  - name: URL Schemes
    loaded: true
    f_regex: ((?![http]|[https])(([-A-Za-z0-9]{1,20})://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]))
    s_regex: ''
    format: '{0}'
    color: yellow
    scope: response body
    engine: nfa
    sensitive: false
  - name: Router Push
    loaded: true
    f_regex: (\$router\.push)
    s_regex: ''
    format: '{0}'
    color: magenta
    scope: response body
    engine: dfa
    sensitive: false
  - name: All URL
    loaded: true
    f_regex: (https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;\u4E00-\u9FFF]+[-A-Za-z0-9+&@#/%=~_|])
    s_regex: ''
    format: '{0}'
    color: gray
    scope: response body
    engine: nfa
    sensitive: true
  - name: Request URI
    loaded: true
    f_regex: ' ((?!.*\.js(\?.*)?$)(.*?[^.js$])) '
    s_regex: ''
    format: '{0}'
    color: gray
    scope: request line
    engine: nfa
    sensitive: false

关于该工具的其他文章

转载请注明出处及链接

Leave a Reply

您的邮箱地址不会被公开。 必填项已用 * 标注