低风险 — 风险评分 18/100
上次扫描:1 天前 重新扫描
18 /100
openclaw-search-pro
Multi-engine search aggregation tool supporting Bing, Sogou, 360, DuckDuckGo, Baidu, and Tavily
A legitimate multi-engine search aggregation tool with minor doc-to-code mismatch in extract.py but no malicious behavior detected.
技能名称openclaw-search-pro
分析耗时59.3s
引擎pi
可以安装
Approve for use. Document the incomplete extract.py content extraction feature in SKILL.md. Consider pinning axios dependency to avoid potential HTTPoxy risks.

安全发现 3 项

严重性 安全发现 位置
低危
Content extraction feature not implemented 文档欺骗
SKILL.md claims extract.py extracts URL content, but the script only validates URLs without performing any HTTP fetch. The script prints placeholder code showing how to use requests/BeautifulSoup but doesn't actually call them.
print('提示:完整功能需要集成 web_fetch 或 requests + BeautifulSoup')
→ Either implement the content extraction feature or update SKILL.md to reflect that extract.py only performs URL validation, not content extraction.
scripts/extract.py:105
低危
extract.js output incomplete extraction info 文档欺骗
The Node.js version extract.js has actual axios fetch logic but the output says '提取内容摘要(前500字符)' without showing actual extracted content in the print statement at line 144.
console.log(text.substring(0, 500)...)
→ Ensure extract.js properly shows extracted content in output.
scripts/extract.js:144
提示
Non-standard private IP range 供应链
The PRIVATE_NETWORKS array uses 120.0.0.0 which is not a standard RFC1918 or link-local range. This appears to be used for security checks, but the range is unusual.
{ start: '120.0.0.0', end: '120.255.255.255' }
→ Remove 120.0.0.0 range unless there's a specific justification for blocking this range.
scripts/extract.js:22
资源类型声明权限推断权限状态证据
网络访问 READ READ ✓ 一致 All scripts use requests/axios for HTTP GET/POST to search engines
文件系统 READ READ ✓ 一致 Only reads config/search-config.json for API keys
命令执行 NONE NONE No subprocess/os.system calls found
环境变量 NONE NONE No os.environ access or credential harvesting
4 高危 69 项发现
📡
高危 IP 地址 硬编码 IP 地址
172.31.255.255
scripts/extract.js:18
📡
高危 IP 地址 硬编码 IP 地址
169.254.0.0
scripts/extract.js:22
📡
高危 IP 地址 硬编码 IP 地址
169.254.255.255
scripts/extract.js:22
📡
高危 IP 地址 硬编码 IP 地址
120.0.0.0
scripts/extract.js:122
🔗
中危 外部 URL 外部 URL
https://ai.baidu.com/tech/search
BAIDU-API-GUIDE.md:7
🔗
中危 外部 URL 外部 URL
https://console.bce.baidu.com/
BAIDU-API-GUIDE.md:106
🔗
中危 外部 URL 外部 URL
https://ai.baidu.com/ai-doc/SEARCH
BAIDU-API-GUIDE.md:107
🔗
中危 外部 URL 外部 URL
https://www.microsoft.com/en-us/bing/apis/bing-web-search-api
README.md:183
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz
package-lock.json:26
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/axios/-/axios-1.13.6.tgz
package-lock.json:32
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz
package-lock.json:43
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz
package-lock.json:49
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/cheerio/-/cheerio-1.2.0.tgz
package-lock.json:62
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz
package-lock.json:87
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz
package-lock.json:104
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/css-select/-/css-select-5.2.2.tgz
package-lock.json:116
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz
package-lock.json:132
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz
package-lock.json:144
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz
package-lock.json:153
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz
package-lock.json:167
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz
package-lock.json:179
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz
package-lock.json:194
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz
package-lock.json:208
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz
package-lock.json:222
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz
package-lock.json:235
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz
package-lock.json:247
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz
package-lock.json:256
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz
package-lock.json:265
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz
package-lock.json:277
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz
package-lock.json:292
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz
package-lock.json:312
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz
package-lock.json:328
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz
package-lock.json:337
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz
package-lock.json:361
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz
package-lock.json:374
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz
package-lock.json:386
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz
package-lock.json:398
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz
package-lock.json:413
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/htmlparser2/-/htmlparser2-10.1.0.tgz
package-lock.json:425
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz
package-lock.json:444
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz
package-lock.json:456
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz
package-lock.json:468
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz
package-lock.json:477
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz
package-lock.json:486
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz
package-lock.json:498
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz
package-lock.json:510
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz
package-lock.json:522
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz
package-lock.json:535
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz
package-lock.json:547
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz
package-lock.json:559
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz
package-lock.json:565
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/undici/-/undici-7.24.4.tgz
package-lock.json:571
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz
package-lock.json:580
🔗
中危 外部 URL 外部 URL
https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz
package-lock.json:592
🔗
中危 外部 URL 外部 URL
https://aip.baidubce.com/oauth/2.0/token
scripts/baidu_search.py:30
🔗
中危 外部 URL 外部 URL
https://aip.baidubce.com/rpc/2.0/kg/v1/cognitive/get_sp?sp_id=5006
scripts/baidu_search.py:31
🔗
中危 外部 URL 外部 URL
https://m.baidu.com/s
scripts/baidu_search.py:136
🔗
中危 外部 URL 外部 URL
https://html.duckduckgo.com/html/
scripts/custom_search.py:129
🔗
中危 外部 URL 外部 URL
https://api.bing.microsoft.com/v7.0/search
scripts/custom_search.py:163
🔗
中危 外部 URL 外部 URL
https://api.tavily.com/search
scripts/custom_search.py:215
🔗
中危 外部 URL 外部 URL
https://cn.bing.com/search
scripts/fallback_search.py:70
🔗
中危 外部 URL 外部 URL
https://m.sogou.com/web
scripts/fallback_search.py:112
🔗
中危 外部 URL 外部 URL
https://www.sogou.com/sogou?query=
scripts/fallback_search.py:130
🔗
中危 外部 URL 外部 URL
https://cn.bing.com/search?q=$
scripts/free-search.js:32
🔗
中危 外部 URL 外部 URL
https://www.sogou.com/web?query=$
scripts/free-search.js:68
🔗
中危 外部 URL 外部 URL
https://www.sogou.com
scripts/free-search.js:81
🔗
中危 外部 URL 外部 URL
https://www.so.com/s?q=$
scripts/free-search.js:113
🔗
中危 外部 URL 外部 URL
https://m.so.com/s
scripts/free_search.py:151
🔗
中危 外部 URL 外部 URL
https://www.so.com/s?q=
scripts/free_search.py:166

目录结构

17 文件 · 91.5 KB · 2942 行
Python 6f · 1161L JSON 3f · 669L Markdown 4f · 660L JavaScript 3f · 449L Config 1f · 3L
├─ 📁 config
│ └─ 📋 search-config.json JSON 37L · 837 B
├─ 📁 scripts
│ ├─ 🐍 baidu_search.py Python 232L · 7.7 KB
│ ├─ 🐍 custom_search.py Python 285L · 9.5 KB
│ ├─ 📜 extract.js JavaScript 166L · 5.5 KB
│ ├─ 🐍 extract.py Python 182L · 5.7 KB
│ ├─ 🐍 fallback_search.py Python 161L · 5.2 KB
│ ├─ 🐍 free_search.py Python 204L · 6.7 KB
│ ├─ 📜 free-search.js JavaScript 187L · 6.3 KB
│ ├─ 📜 multi-search.js JavaScript 96L · 3.3 KB
│ └─ 🐍 multi-search.py Python 97L · 3.4 KB
├─ 📁 venv
│ └─ 📄 pyvenv.cfg Config 3L · 69 B
├─ 📝 BAIDU-API-GUIDE.md Markdown 111L · 2.1 KB
├─ 📋 package-lock.json JSON 600L · 21.1 KB
├─ 📋 package.json JSON 32L · 798 B
├─ 📝 README_EN.md Markdown 99L · 1.9 KB
├─ 📝 README.md Markdown 309L · 7.5 KB
└─ 📝 SKILL.md Markdown 141L · 3.6 KB

依赖分析 3 项

包名版本来源已知漏洞备注
axios ^1.6.7 npm Version spec allows minor updates - stable
cheerio ^1.0.0-rc.12 npm Well-maintained HTML parser
requests implicit pip Standard Python HTTP library, no version pinning in requirements

安全亮点

✓ No credential theft or API key exfiltration - keys only used locally for search API calls
✓ No shell execution, reverse shells, or RCE vectors detected
✓ SSRF protection implemented with private IP range checks and DNS resolution validation
✓ No base64 encoding, eval(), or obfuscation found
✓ No sensitive file access (no ~/.ssh, ~/.aws, .env reads)
✓ No data exfiltration or C2 communication patterns
✓ Well-documented security considerations in SKILL.md
✓ HTTP requests limited to legitimate search engine domains (Bing, Sogou, 360, DuckDuckGo, Tavily)