扫描报告
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.
可以安装
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
│ ├─
article-posting.md
Markdown
│ └─
image-text-posting.md
Markdown
├─
▾
scripts
│ ├─
▾
vendor
│ │ ├─
▾
baoyu-chrome-cdp
│ │ │ ├─
▾
src
│ │ │ │ ├─
index.test.ts
TypeScript
│ │ │ │ └─
index.ts
TypeScript
│ │ │ └─
package.json
JSON
│ │ └─
▾
baoyu-md
│ │ ├─
▾
src
│ │ │ ├─
▾
code-themes
│ │ │ │ ├─
1c-light.min.css
CSS
│ │ │ │ ├─
a11y-dark.min.css
CSS
│ │ │ │ ├─
a11y-light.min.css
CSS
│ │ │ │ ├─
agate.min.css
CSS
│ │ │ │ ├─
an-old-hope.min.css
CSS
│ │ │ │ ├─
androidstudio.min.css
CSS
│ │ │ │ ├─
arduino-light.min.css
CSS
│ │ │ │ ├─
arta.min.css
CSS
│ │ │ │ ├─
ascetic.min.css
CSS
│ │ │ │ ├─
atom-one-dark-reasonable.min.css
CSS
│ │ │ │ ├─
atom-one-dark.min.css
CSS
│ │ │ │ ├─
atom-one-light.min.css
CSS
│ │ │ │ ├─
brown-paper.min.css
CSS
│ │ │ │ ├─
codepen-embed.min.css
CSS
│ │ │ │ ├─
color-brewer.min.css
CSS
│ │ │ │ ├─
dark.min.css
CSS
│ │ │ │ ├─
default.min.css
CSS
│ │ │ │ ├─
devibeans.min.css
CSS
│ │ │ │ ├─
docco.min.css
CSS
│ │ │ │ ├─
far.min.css
CSS
│ │ │ │ ├─
felipec.min.css
CSS
│ │ │ │ ├─
foundation.min.css
CSS
│ │ │ │ ├─
github-dark-dimmed.min.css
CSS
│ │ │ │ ├─
github-dark.min.css
CSS
│ │ │ │ ├─
github.min.css
CSS
│ │ │ │ ├─
gml.min.css
CSS
│ │ │ │ ├─
googlecode.min.css
CSS
│ │ │ │ ├─
gradient-dark.min.css
CSS
│ │ │ │ ├─
gradient-light.min.css
CSS
│ │ │ │ ├─
grayscale.min.css
CSS
│ │ │ │ ├─
hybrid.min.css
CSS
│ │ │ │ ├─
idea.min.css
CSS
│ │ │ │ ├─
intellij-light.min.css
CSS
│ │ │ │ ├─
ir-black.min.css
CSS
│ │ │ │ ├─
isbl-editor-dark.min.css
CSS
│ │ │ │ ├─
isbl-editor-light.min.css
CSS
│ │ │ │ ├─
kimbie-dark.min.css
CSS
│ │ │ │ ├─
kimbie-light.min.css
CSS
│ │ │ │ ├─
lightfair.min.css
CSS
│ │ │ │ ├─
lioshi.min.css
CSS
│ │ │ │ ├─
magula.min.css
CSS
│ │ │ │ ├─
mono-blue.min.css
CSS
│ │ │ │ ├─
monokai-sublime.min.css
CSS
│ │ │ │ ├─
monokai.min.css
CSS
│ │ │ │ ├─
night-owl.min.css
CSS
│ │ │ │ ├─
nnfx-dark.min.css
CSS
│ │ │ │ ├─
nnfx-light.min.css
CSS
│ │ │ │ ├─
nord.min.css
CSS
│ │ │ │ ├─
obsidian.min.css
CSS
│ │ │ │ ├─
panda-syntax-dark.min.css
CSS
│ │ │ │ ├─
panda-syntax-light.min.css
CSS
│ │ │ │ ├─
paraiso-dark.min.css
CSS
│ │ │ │ ├─
paraiso-light.min.css
CSS
│ │ │ │ ├─
pojoaque.min.css
CSS
│ │ │ │ ├─
purebasic.min.css
CSS
│ │ │ │ ├─
qtcreator-dark.min.css
CSS
│ │ │ │ ├─
qtcreator-light.min.css
CSS
│ │ │ │ ├─
rainbow.min.css
CSS
│ │ │ │ ├─
routeros.min.css
CSS
│ │ │ │ ├─
school-book.min.css
CSS
│ │ │ │ ├─
shades-of-purple.min.css
CSS
│ │ │ │ ├─
srcery.min.css
CSS
│ │ │ │ ├─
stackoverflow-dark.min.css
CSS
│ │ │ │ ├─
stackoverflow-light.min.css
CSS
│ │ │ │ ├─
sunburst.min.css
CSS
│ │ │ │ ├─
tokyo-night-dark.min.css
CSS
│ │ │ │ ├─
tokyo-night-light.min.css
CSS
│ │ │ │ ├─
tomorrow-night-blue.min.css
CSS
│ │ │ │ ├─
tomorrow-night-bright.min.css
CSS
│ │ │ │ ├─
vs.min.css
CSS
│ │ │ │ ├─
vs2015.min.css
CSS
│ │ │ │ ├─
xcode.min.css
CSS
│ │ │ │ └─
xt256.min.css
CSS
│ │ │ ├─
▾
extensions
│ │ │ │ ├─
alert.ts
TypeScript
│ │ │ │ ├─
footnotes.ts
TypeScript
│ │ │ │ ├─
index.ts
TypeScript
│ │ │ │ ├─
infographic.ts
TypeScript
│ │ │ │ ├─
katex.ts
TypeScript
│ │ │ │ ├─
markup.ts
TypeScript
│ │ │ │ ├─
plantuml.ts
TypeScript
│ │ │ │ ├─
ruby.ts
TypeScript
│ │ │ │ ├─
slider.ts
TypeScript
│ │ │ │ └─
toc.ts
TypeScript
│ │ │ ├─
▾
themes
│ │ │ │ ├─
base.css
CSS
│ │ │ │ ├─
default.css
CSS
│ │ │ │ ├─
grace.css
CSS
│ │ │ │ ├─
modern.css
CSS
│ │ │ │ └─
simple.css
CSS
│ │ │ ├─
▾
utils
│ │ │ │ └─
languages.ts
TypeScript
│ │ │ ├─
cli.ts
TypeScript
│ │ │ ├─
constants.ts
TypeScript
│ │ │ ├─
content.test.ts
TypeScript
│ │ │ ├─
content.ts
TypeScript
│ │ │ ├─
document.test.ts
TypeScript
│ │ │ ├─
document.ts
TypeScript
│ │ │ ├─
extend-config.ts
TypeScript
│ │ │ ├─
html-builder.test.ts
TypeScript
│ │ │ ├─
html-builder.ts
TypeScript
│ │ │ ├─
images.test.ts
TypeScript
│ │ │ ├─
images.ts
TypeScript
│ │ │ ├─
index.ts
TypeScript
│ │ │ ├─
render.ts
TypeScript
│ │ │ ├─
renderer.test.ts
TypeScript
│ │ │ ├─
renderer.ts
TypeScript
│ │ │ ├─
themes.ts
TypeScript
│ │ │ └─
types.ts
TypeScript
│ │ └─
package.json
JSON
│ ├─
cdp.ts
TypeScript
│ ├─
check-permissions.ts
TypeScript
│ ├─
copy-to-clipboard.ts
TypeScript
│ ├─
md-to-wechat.ts
TypeScript
│ ├─
package.json
JSON
│ ├─
paste-from-clipboard.ts
TypeScript
│ ├─
wechat-agent-browser.ts
TypeScript
│ ├─
wechat-api.ts
TypeScript
│ ├─
wechat-article.ts
TypeScript
│ ├─
wechat-browser.ts
TypeScript
│ └─
wechat-extend-config.ts
TypeScript
└─
SKILL.md
Markdown
依赖分析 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