diff --git a/public/rules/headers/header-patterns.json b/public/rules/headers/header-patterns.json index e0ba600..8c75ad3 100644 --- a/public/rules/headers/header-patterns.json +++ b/public/rules/headers/header-patterns.json @@ -138,6 +138,84 @@ } ] }, + { + "defaults": { + "category": "数据基础设施", + "confidence": "高" + }, + "rules": [ + { + "name": "Elasticsearch Kibana", + "patterns": [ + "(?:^|\\n)kbn-name:", + "(?:^|\\n)kbn-version:", + "(?:^|\\n)x-app-name:\\s*kibana" + ], + "evidence": "响应头包含 Kibana 专属标识" + }, + { + "name": "Grafana", + "patterns": [ + "(?:^|\\n)set-cookie:[^\\n]*(?:^|[;,\\s])grafana_sess(?:=|[,;\\s]|$)" + ], + "evidence": "Set-Cookie 包含 Grafana 会话标识" + } + ] + }, + { + "defaults": { + "category": "DevOps / 研发效能", + "confidence": "高" + }, + "rules": [ + { + "name": "Jenkins", + "patterns": [ + "(?:^|\\n)x-hudson:", + "(?:^|\\n)x-hudson-cli-port:" + ], + "evidence": "响应头包含 Hudson / Jenkins 专属标识" + }, + { + "name": "SonarQube", + "patterns": [ + "(?:^|\\n)set-cookie:[^\\n]*(?:^|[;,\\s])_sonar_session(?:=|[,;\\s]|$)" + ], + "evidence": "Set-Cookie 包含 SonarQube 会话标识" + } + ] + }, + { + "defaults": { + "category": "后端 / 服务器框架" + }, + "rules": [ + { + "name": "Sinatra", + "confidence": "中", + "patterns": [ + "(?:^|\\n)x-cascade:\\s*pass", + "__sinatra__" + ], + "evidence": "响应头或资源路径包含 Sinatra 框架线索" + }, + { + "name": "Perl Mojolicious", + "confidence": "中", + "patterns": [ + "(?:^|\\n)x-powered-by:[^\\n]*mojolicious" + ], + "evidence": "X-Powered-By 包含 Mojolicious 框架标识" + } + ] + }, + { + "category": "CMS / 电商平台", + "name": "Liferay Portal", + "confidence": "高", + "patterns": ["(?:^|\\n)liferay-portal:"], + "evidence": "响应头包含 Liferay Portal 专属标识" + }, { "category": "CMS / 电商平台", "name": "Drupal", @@ -248,7 +326,7 @@ }, { "name": "Vercel", - "patterns": ["(?:^|\\n)x-vercel-id:", "(?:^|\\n)x-matched-path:", "server:.*vercel"], + "patterns": ["(?:^|\\n)x-vercel-id:", "server:.*vercel"], "evidence": "存在 Vercel 响应头" }, { diff --git a/public/rules/headers/interesting-headers.json b/public/rules/headers/interesting-headers.json index d14148c..9e9d31b 100644 --- a/public/rules/headers/interesting-headers.json +++ b/public/rules/headers/interesting-headers.json @@ -69,7 +69,14 @@ "x-iinfo", "x-px", "x-hwcdn-cache", - "x-hwcdn-request-id" + "x-hwcdn-request-id", + "kbn-name", + "kbn-version", + "liferay-portal", + "x-hudson", + "x-hudson-cli-port", + "x-app-name", + "x-cascade" ] } } diff --git a/public/rules/headers/powered-by-products.json b/public/rules/headers/powered-by-products.json index 10d64fc..f7f515b 100644 --- a/public/rules/headers/powered-by-products.json +++ b/public/rules/headers/powered-by-products.json @@ -317,6 +317,30 @@ "name": "Rust", "confidence": "中", "patterns": ["\\brust\\b|rustlang"] + }, + { + "name": "Sinopia", + "patterns": ["\\bsinopia\\b"] + }, + { + "name": "NodeBB", + "patterns": ["\\bnodebb\\b"] + }, + { + "name": "RESTHeart", + "patterns": ["\\brestheart\\b"] + }, + { + "name": "Payara Server", + "patterns": ["\\bpayara\\b"] + }, + { + "name": "Servlet", + "patterns": ["\\bservlet\\b"] + }, + { + "name": "JSP", + "patterns": ["\\bjsp\\b"] } ] } diff --git a/public/rules/headers/server-products.json b/public/rules/headers/server-products.json index 8ec6776..0449ca4 100644 --- a/public/rules/headers/server-products.json +++ b/public/rules/headers/server-products.json @@ -161,6 +161,42 @@ { "name": "OpenSwoole", "patterns": ["openswoole|open\\s*swoole"] + }, + { + "name": "WEBrick", + "patterns": ["\\bwebrick\\b"] + }, + { + "name": "Python http.server", + "patterns": ["basehttp|python.*http\\.server"] + }, + { + "name": "GoAhead WebServer", + "patterns": ["goahead[-\\s]?webs?"] + }, + { + "name": "lighttpd", + "patterns": ["\\blighttpd\\b"] + }, + { + "name": "Payara Server", + "patterns": ["\\bpayara\\b"] + }, + { + "name": "IBM HTTP Server", + "patterns": ["ibm[_-]http[_-]server|\\bihs\\b"] + }, + { + "name": "Sinopia", + "patterns": ["\\bsinopia\\b"] + }, + { + "name": "NodeBB", + "patterns": ["\\bnodebb\\b"] + }, + { + "name": "RESTHeart", + "patterns": ["\\brestheart\\b"] } ] }, diff --git a/public/rules/page/frontend-extra.json b/public/rules/page/frontend-extra.json index 8b21707..516ea4c 100644 --- a/public/rules/page/frontend-extra.json +++ b/public/rules/page/frontend-extra.json @@ -463,7 +463,7 @@ "patterns": [ "(?:^|/)react-router(?:-dom)?(?:@[\\d.]+)?(?:/[^\\s\"'<>]+)?\\.(?:m?js|cjs)(?:[?#\"'<>\\s]|$)" ], - "globals": ["ReactRouter", "ReactRouterDOM"] + "globals": ["ReactRouter", "ReactRouterDOM", "__reactRouterVersion"] }, { "name": "Anime.js", diff --git a/public/rules/page/frontend-frameworks.json b/public/rules/page/frontend-frameworks.json index dbb3531..cd6cc37 100644 --- a/public/rules/page/frontend-frameworks.json +++ b/public/rules/page/frontend-frameworks.json @@ -18,7 +18,7 @@ { "name": "Vue", "patterns": ["vue(?:\\.runtime)?(?:\\.global)?(?:\\.prod)?(?:\\.min)?\\.js", "vue-router", "pinia"], - "globals": ["Vue"], + "globals": ["Vue", "__VUE_DEVTOOLS_GLOBAL_HOOK__"], "selectors": ["[data-v-app]", "#app.__vue__"] }, { diff --git a/public/rules/page/website-programs.json b/public/rules/page/website-programs.json index 6721bdb..5c97b80 100644 --- a/public/rules/page/website-programs.json +++ b/public/rules/page/website-programs.json @@ -155,11 +155,26 @@ "kind": "论坛 / 社区", "patterns": [ "]+name=[\"']?generator[\"']?[^>]+content=[\"'][^\"']*discourse", + "]+name=[\"']?discourse-version[\"']?", "__DISCOURSE", "/assets/discourse-", "discourse_theme" ], - "globals": ["Discourse"] + "globals": ["Discourse", "Discourse.SiteSettings", "Discourse.User"], + "selectors": [".discourse-application", "#discourse-modal"] + }, + { + "name": "OpenList", + "kind": "文件列表", + "patterns": [ + "]+name=[\"']?generator[\"']?[^>]+content=[\"'][^\"']*OpenList" + ], + "globals": ["OPENLIST_CONFIG"] + }, + { + "name": "Cloudreve", + "kind": "网盘", + "patterns": ["cloudreve-frontend"] }, { "name": "MediaWiki", @@ -290,7 +305,7 @@ }, { "name": "VuePress", - "patterns": ["vuepress", "__VUEPRESS__"] + "patterns": ["]+name=[\"']?generator[\"']?[^>]+content=[\"'][^\"']*VuePress", "vuepress", "__VUEPRESS__"] }, { "name": "Docsify",