可信 — 风险评分 5/100
上次扫描:1 天前 重新扫描
5 /100
baoyu-post-to-wechat
Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP browser automation
This is a legitimate WeChat Official Account publishing skill with no malicious behavior found. All network traffic goes exclusively to WeChat's official API endpoints. The pre-scan's hardcoded IP flag at alert.ts:157 is a false positive — decimal numbers in SVG path data (0.784, 1.75) were misidentified as an IP address.
技能名称baoyu-post-to-wechat
分析耗时88.2s
引擎pi
可以安装
No action needed. The skill is safe to use for its documented purpose of posting content to WeChat Official Accounts.
资源类型声明权限推断权限状态证据
文件系统 NONE READ ✓ 一致 Reads markdown/HTML files; no sensitive paths accessed
文件系统 NONE WRITE ✓ 一致 Writes temp HTML to os.tmpdir(); creates post-to-wechat/ dir for plain text — na…
网络访问 NONE READ ✓ 一致 Downloads remote images via fetch; all network calls go to WeChat official APIs …
网络访问 NONE WRITE ✓ 一致 POSTs articles and uploads images to WeChat API — the skill's core purpose
命令执行 NONE WRITE ✓ 一致 spawnSync('npx -y bun') for script execution; osascript/xdotool for browser auto…
环境变量 NONE READ ✓ 一致 Reads WECHAT_APP_ID/APP_SECRET from env and .env files — scoped to WeChat creden…
浏览器 NONE WRITE ✓ 一致 Chrome CDP automation for image-text and article browser publishing; all targets…
剪贴板 NONE WRITE ✓ 一致 Copies HTML content and images for paste into WeChat editor — essential browser …
1 高危 27 项发现
📡
高危 IP 地址 硬编码 IP 地址
138.112.25.25
scripts/vendor/baoyu-md/src/extensions/alert.ts:157
🔗
中危 外部 URL 外部 URL
https://mp.weixin.qq.com
SKILL.md:322
🔗
中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKEN
SKILL.md:387
🔗
中危 外部 URL 外部 URL
https://gemini.google.com/app
scripts/vendor/baoyu-chrome-cdp/src/index.test.ts:242
🔗
中危 外部 URL 外部 URL
https://softonit.ru/
scripts/vendor/baoyu-md/src/code-themes/1c-light.min.css:6
🔗
中危 外部 URL 外部 URL
https://highlightjs.org/
scripts/vendor/baoyu-md/src/code-themes/default.min.css:6
🔗
中危 外部 URL 外部 URL
https://creativecommons.org/licenses/by-sa/4.0
scripts/vendor/baoyu-md/src/code-themes/nnfx-dark.min.css:6
🔗
中危 外部 URL 外部 URL
http://www.w3.org/2000/svg
scripts/vendor/baoyu-md/src/constants.ts:79
🔗
中危 外部 URL 外部 URL
https://marked.js.org/
scripts/vendor/baoyu-md/src/extensions/alert.ts:23
🔗
中危 外部 URL 外部 URL
https://groups.google.com/g/mathjax-users/c/zThKffrrCvE?pli=1
scripts/vendor/baoyu-md/src/extensions/katex.ts:26
🔗
中危 外部 URL 外部 URL
https://www.plantuml.com/plantuml
scripts/vendor/baoyu-md/src/extensions/plantuml.ts:7
🔗
中危 外部 URL 外部 URL
https://plantuml.com/text-encoding
scripts/vendor/baoyu-md/src/extensions/plantuml.ts:35
🔗
中危 外部 URL 外部 URL
https://talk.commonmark.org/t/proper-ruby-text-rb-syntax-support-in-markdown/2279
scripts/vendor/baoyu-md/src/extensions/ruby.ts:5
🔗
中危 外部 URL 外部 URL
https://www.w3.org/TR/ruby/
scripts/vendor/baoyu-md/src/extensions/ruby.ts:6
🔗
中危 外部 URL 外部 URL
https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/highlightjs/$
scripts/vendor/baoyu-md/src/utils/languages.ts:80
🔗
中危 外部 URL 外部 URL
https://mp.weixin.qq.com/
scripts/wechat-agent-browser.ts:6
🔗
中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/token
scripts/wechat-api.ts:54
🔗
中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/material/add_material
scripts/wechat-api.ts:55
🔗
中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/draft/add
scripts/wechat-api.ts:56
🔗
中危 外部 URL 外部 URL
https://mmbiz.qpic.cn
scripts/wechat-api.ts:179
📧
提示 邮箱 邮箱地址
[email protected]
scripts/vendor/baoyu-md/src/code-themes/1c-light.min.css:4
📧
提示 邮箱 邮箱地址
[email protected]
scripts/vendor/baoyu-md/src/code-themes/agate.min.css:3
📧
提示 邮箱 邮箱地址
[email protected]
scripts/vendor/baoyu-md/src/code-themes/an-old-hope.min.css:3
📧
提示 邮箱 邮箱地址
[email protected]
scripts/vendor/baoyu-md/src/code-themes/default.min.css:4
📧
提示 邮箱 邮箱地址
[email protected]
scripts/vendor/baoyu-md/src/code-themes/felipec.min.css:3
📧
提示 邮箱 邮箱地址
[email protected]
scripts/vendor/baoyu-md/src/code-themes/nnfx-dark.min.css:4
📧
提示 邮箱 邮箱地址
[email protected]
scripts/vendor/baoyu-md/src/code-themes/tokyo-night-dark.min.css:5

目录结构

125 文件 · 404.2 KB · 10772 行
TypeScript 40f · 8425L CSS 78f · 1408L Markdown 4f · 900L JSON 3f · 39L
├─ 📁 references
│ ├─ 📁 config
│ │ └─ 📝 first-time-setup.md Markdown 203L · 5.2 KB
│ ├─ 📝 article-posting.md Markdown 95L · 2.5 KB
│ └─ 📝 image-text-posting.md Markdown 94L · 2.8 KB
├─ 📁 scripts
│ ├─ 📁 vendor
│ │ ├─ 📁 baoyu-chrome-cdp
│ │ │ ├─ 📁 src
│ │ │ │ ├─ 📜 index.test.ts TypeScript 307L · 9.3 KB
│ │ │ │ └─ 📜 index.ts TypeScript 523L · 16.8 KB
│ │ │ └─ 📋 package.json JSON 9L · 140 B
│ │ └─ 📁 baoyu-md
│ │ ├─ 📁 src
│ │ │ ├─ 📁 code-themes
│ │ │ │ ├─ 📄 1c-light.min.css CSS 8L · 1.1 KB
│ │ │ │ ├─ 📄 a11y-dark.min.css CSS 6L · 1.1 KB
│ │ │ │ ├─ 📄 a11y-light.min.css CSS 6L · 1.1 KB
│ │ │ │ ├─ 📄 agate.min.css CSS 19L · 1.3 KB
│ │ │ │ ├─ 📄 an-old-hope.min.css CSS 8L · 961 B
│ │ │ │ ├─ 📄 androidstudio.min.css CSS 1L · 611 B
│ │ │ │ ├─ 📄 arduino-light.min.css CSS 1L · 844 B
│ │ │ │ ├─ 📄 arta.min.css CSS 1L · 673 B
│ │ │ │ ├─ 📄 ascetic.min.css CSS 1L · 454 B
│ │ │ │ ├─ 📄 atom-one-dark-reasonable.min.css CSS 1L · 1.2 KB
│ │ │ │ ├─ 📄 atom-one-dark.min.css CSS 1L · 856 B
│ │ │ │ ├─ 📄 atom-one-light.min.css CSS 1L · 856 B
│ │ │ │ ├─ 📄 brown-paper.min.css CSS 1L · 656 B
│ │ │ │ ├─ 📄 codepen-embed.min.css CSS 1L · 600 B
│ │ │ │ ├─ 📄 color-brewer.min.css CSS 1L · 631 B
│ │ │ │ ├─ 📄 dark.min.css CSS 1L · 625 B
│ │ │ │ ├─ 📄 default.min.css CSS 8L · 1.1 KB
│ │ │ │ ├─ 📄 devibeans.min.css CSS 6L · 1.1 KB
│ │ │ │ ├─ 📄 docco.min.css CSS 1L · 837 B
│ │ │ │ ├─ 📄 far.min.css CSS 1L · 669 B
│ │ │ │ ├─ 📄 felipec.min.css CSS 6L · 1.2 KB
│ │ │ │ ├─ 📄 foundation.min.css CSS 1L · 779 B
│ │ │ │ ├─ 📄 github-dark-dimmed.min.css CSS 8L · 1.2 KB
│ │ │ │ ├─ 📄 github-dark.min.css CSS 9L · 1.3 KB
│ │ │ │ ├─ 📄 github.min.css CSS 9L · 1.3 KB
│ │ │ │ ├─ 📄 gml.min.css CSS 1L · 787 B
│ │ │ │ ├─ 📄 googlecode.min.css CSS 1L · 835 B
│ │ │ │ ├─ 📄 gradient-dark.min.css CSS 1L · 1.1 KB
│ │ │ │ ├─ 📄 gradient-light.min.css CSS 1L · 1.1 KB
│ │ │ │ ├─ 📄 grayscale.min.css CSS 1L · 1.6 KB
│ │ │ │ ├─ 📄 hybrid.min.css CSS 1L · 897 B
│ │ │ │ ├─ 📄 idea.min.css CSS 1L · 906 B
│ │ │ │ ├─ 📄 intellij-light.min.css CSS 1L · 1.0 KB
│ │ │ │ ├─ 📄 ir-black.min.css CSS 1L · 694 B
│ │ │ │ ├─ 📄 isbl-editor-dark.min.css CSS 1L · 971 B
│ │ │ │ ├─ 📄 isbl-editor-light.min.css CSS 1L · 952 B
│ │ │ │ ├─ 📄 kimbie-dark.min.css CSS 1L · 652 B
│ │ │ │ ├─ 📄 kimbie-light.min.css CSS 1L · 652 B
│ │ │ │ ├─ 📄 lightfair.min.css CSS 1L · 831 B
│ │ │ │ ├─ 📄 lioshi.min.css CSS 1L · 715 B
│ │ │ │ ├─ 📄 magula.min.css CSS 1L · 642 B
│ │ │ │ ├─ 📄 mono-blue.min.css CSS 1L · 631 B
│ │ │ │ ├─ 📄 monokai-sublime.min.css CSS 1L · 826 B
│ │ │ │ ├─ 📄 monokai.min.css CSS 1L · 814 B
│ │ │ │ ├─ 📄 night-owl.min.css CSS 1L · 1.4 KB
│ │ │ │ ├─ 📄 nnfx-dark.min.css CSS 9L · 1.4 KB
│ │ │ │ ├─ 📄 nnfx-light.min.css CSS 9L · 1.4 KB
│ │ │ │ ├─ 📄 nord.min.css CSS 1L · 2.6 KB
│ │ │ │ ├─ 📄 obsidian.min.css CSS 1L · 882 B
│ │ │ │ ├─ 📄 panda-syntax-dark.min.css CSS 1L · 1.1 KB
│ │ │ │ ├─ 📄 panda-syntax-light.min.css CSS 1L · 1.0 KB
│ │ │ │ ├─ 📄 paraiso-dark.min.css CSS 1L · 637 B
│ │ │ │ ├─ 📄 paraiso-light.min.css CSS 1L · 637 B
│ │ │ │ ├─ 📄 pojoaque.min.css CSS 1L · 814 B
│ │ │ │ ├─ 📄 purebasic.min.css CSS 1L · 734 B
│ │ │ │ ├─ 📄 qtcreator-dark.min.css CSS 1L · 815 B
│ │ │ │ ├─ 📄 qtcreator-light.min.css CSS 1L · 810 B
│ │ │ │ ├─ 📄 rainbow.min.css CSS 1L · 826 B
│ │ │ │ ├─ 📄 routeros.min.css CSS 1L · 862 B
│ │ │ │ ├─ 📄 school-book.min.css CSS 1L · 664 B
│ │ │ │ ├─ 📄 shades-of-purple.min.css CSS 1L · 854 B
│ │ │ │ ├─ 📄 srcery.min.css CSS 1L · 795 B
│ │ │ │ ├─ 📄 stackoverflow-dark.min.css CSS 12L · 1.2 KB
│ │ │ │ ├─ 📄 stackoverflow-light.min.css CSS 12L · 1.3 KB
│ │ │ │ ├─ 📄 sunburst.min.css CSS 1L · 950 B
│ │ │ │ ├─ 📄 tokyo-night-dark.min.css CSS 7L · 1.2 KB
│ │ │ │ ├─ 📄 tokyo-night-light.min.css CSS 7L · 1.2 KB
│ │ │ │ ├─ 📄 tomorrow-night-blue.min.css CSS 1L · 648 B
│ │ │ │ ├─ 📄 tomorrow-night-bright.min.css CSS 1L · 648 B
│ │ │ │ ├─ 📄 vs.min.css CSS 1L · 640 B
│ │ │ │ ├─ 📄 vs2015.min.css CSS 1L · 1.1 KB
│ │ │ │ ├─ 📄 xcode.min.css CSS 1L · 945 B
│ │ │ │ └─ 📄 xt256.min.css CSS 1L · 765 B
│ │ │ ├─ 📁 extensions
│ │ │ │ ├─ 📜 alert.ts TypeScript 284L · 19.3 KB
│ │ │ │ ├─ 📜 footnotes.ts TypeScript 89L · 2.4 KB
│ │ │ │ ├─ 📜 index.ts TypeScript 10L · 280 B
│ │ │ │ ├─ 📜 infographic.ts TypeScript 119L · 3.6 KB
│ │ │ │ ├─ 📜 katex.ts TypeScript 162L · 4.6 KB
│ │ │ │ ├─ 📜 markup.ts TypeScript 87L · 2.3 KB
│ │ │ │ ├─ 📜 plantuml.ts TypeScript 289L · 8.1 KB
│ │ │ │ ├─ 📜 ruby.ts TypeScript 125L · 3.9 KB
│ │ │ │ ├─ 📜 slider.ts TypeScript 73L · 2.9 KB
│ │ │ │ └─ 📜 toc.ts TypeScript 74L · 2.1 KB
│ │ │ ├─ 📁 themes
│ │ │ │ ├─ 📄 base.css CSS 39L · 816 B
│ │ │ │ ├─ 📄 default.css CSS 434L · 7.7 KB
│ │ │ │ ├─ 📄 grace.css CSS 136L · 2.5 KB
│ │ │ │ ├─ 📄 modern.css CSS 465L · 8.2 KB
│ │ │ │ └─ 📄 simple.css CSS 129L · 2.7 KB
│ │ │ ├─ 📁 utils
│ │ │ │ └─ 📜 languages.ts TypeScript 238L · 8.1 KB
│ │ │ ├─ 📜 cli.ts TypeScript 163L · 5.7 KB
│ │ │ ├─ 📜 constants.ts TypeScript 84L · 3.3 KB
│ │ │ ├─ 📜 content.test.ts TypeScript 93L · 2.3 KB
│ │ │ ├─ 📜 content.ts TypeScript 105L · 3.1 KB
│ │ │ ├─ 📜 document.test.ts TypeScript 140L · 4.3 KB
│ │ │ ├─ 📜 document.ts TypeScript 206L · 6.7 KB
│ │ │ ├─ 📜 extend-config.ts TypeScript 57L · 2.3 KB
│ │ │ ├─ 📜 html-builder.test.ts TypeScript 71L · 2.5 KB
│ │ │ ├─ 📜 html-builder.ts TypeScript 142L · 4.4 KB
│ │ │ ├─ 📜 images.test.ts TypeScript 79L · 2.5 KB
│ │ │ ├─ 📜 images.ts TypeScript 156L · 4.1 KB
│ │ │ ├─ 📜 index.ts TypeScript 10L · 307 B
│ │ │ ├─ 📜 render.ts TypeScript 43L · 1.2 KB
│ │ │ ├─ 📜 renderer.test.ts TypeScript 64L · 2.0 KB
│ │ │ ├─ 📜 renderer.ts TypeScript 442L · 13.3 KB
│ │ │ ├─ 📜 themes.ts TypeScript 62L · 1.8 KB
│ │ │ └─ 📜 types.ts TypeScript 78L · 1.8 KB
│ │ └─ 📋 package.json JSON 21L · 450 B
│ ├─ 📜 cdp.ts TypeScript 255L · 8.2 KB
│ ├─ 📜 check-permissions.ts TypeScript 251L · 8.6 KB
│ ├─ 📜 copy-to-clipboard.ts TypeScript 380L · 11.9 KB
│ ├─ 📜 md-to-wechat.ts TypeScript 170L · 4.7 KB
│ ├─ 📋 package.json JSON 9L · 208 B
│ ├─ 📜 paste-from-clipboard.ts TypeScript 194L · 5.5 KB
│ ├─ 📜 wechat-agent-browser.ts TypeScript 363L · 11.1 KB
│ ├─ 📜 wechat-api.ts TypeScript 664L · 21.0 KB
│ ├─ 📜 wechat-article.ts TypeScript 787L · 32.0 KB
│ ├─ 📜 wechat-browser.ts TypeScript 741L · 27.7 KB
│ └─ 📜 wechat-extend-config.ts TypeScript 245L · 7.7 KB
└─ 📝 SKILL.md Markdown 508L · 19.7 KB

依赖分析 2 项

包名版本来源已知漏洞备注
baoyu-md file: vendor/baoyu-md/package.json local vendor Bundled vendor library; not from npm registry
baoyu-chrome-cdp file: vendor/baoyu-chrome-cdp/package.json local vendor Bundled vendor library; not from npm registry

安全亮点

✓ All network requests exclusively target WeChat official APIs (api.weixin.qq.com, mp.weixin.qq.com) — no third-party endpoints
✓ No exfiltration of credentials; app_id/app_secret only sent to WeChat token endpoint
✓ No base64-encoded payloads, reverse shells, or obfuscated code
✓ Chrome automation uses standard CDP with legitimate flags (--disable-blink-features, --start-maximized)
✓ Credentials support multi-source loading (env > .env) with clear documentation
✓ No credential values ever written to stdout/logs — only success/failure status
✓ Shell subprocess usage is confined to known tooling: bun runtime, macOS accessibility APIs, Linux xdotool/ydotool
✓ No access to sensitive paths such as ~/.ssh, ~/.aws, or system config directories
✓ Environment variable access is scoped to WECHAT_* prefixed keys only
✓ Temp files written to os.tmpdir() with unique prefixes and cleaned up after use
✓ No curl|bash, pip install from untrusted sources, or other supply chain risks