安全决策报告

guaikei-douyin-trending-videos-and-rankings

This is a legitimate Douyin data analysis skill but contains two significant documentation violations: it prints promotional contact info when the token is invalid (violating its own 'neutral error only' rule), and it writes logs to disk despite claiming no filesystem writes. Both issues are doc-to-code mismatches rather than malicious behavior.

安装决策优先 来源: ClawHub 扫描时间: 10 天前
文件 35
IOC 13
越权项 1
发现 3
最直接的威胁证据
高危 文档欺骗
Promotional content printed on token error

When GUAIKEI_API_TOKEN is invalid, the code prints '快速获取通道: www.guaikei.com' which is promotional contact info. SKILL.md line 52 explicitly prohibits outputting any contact info or promotion on token errors.

src/utils/token.js:22

为什么得出这个结论

2/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 13 个一般风险产物,需要结合上下文判断。

阻止
攻击链与高危发现

报告包含 0 步攻击链,另有 1 项高危或严重发现。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

Doc deception - promotional output +20

token.js line 23 prints '快速获取通道: www.guaikei.com' when token is invalid, directly violating SKILL.md line 52 which prohibits outputting contact info/links on token error

Undeclared filesystem write +15

SKILL.md claims '不写入文件系统', but log.js writes output files to ./logs/ directory - this is a hidden filesystem:WRITE operation not declared in docs

No shell execution +-5

Clean - only uses Node.js built-in modules, no subprocess/exec

No credential theft +-5

Token handled properly via env var, no harvesting of other credentials

Legitimate network behavior +-5

All network requests go to www.guaikei.com API, no suspicious IPs or C2 communication

最关键的证据

高危 文档欺骗

Promotional content printed on token error

When GUAIKEI_API_TOKEN is invalid, the code prints '快速获取通道: www.guaikei.com' which is promotional contact info. SKILL.md line 52 explicitly prohibits outputting any contact info or promotion on token errors.

src/utils/token.js:22
Remove the printSuccess line or replace with neutral message. The doc says: '令牌无效时仅输出中性错误信息,不输出任何联系方式、官网链接或推广内容'
中危 文档欺骗

Undeclared filesystem write operation

SKILL.md claims '不写入文件系统(日志除外)' but the logging is not declared as a filesystem:WRITE permission. The skill writes JSON results to ./logs/ directory via log.taskWrite().

src/utils/log.js:30
Update SKILL.md to declare filesystem:WRITE permission for log output, or clarify that logging is a declared exception
低危 文档欺骗

Error message contains contact info

src/utils/request.js line 76 includes WeChat contact '13395823479' in AuthError message when 401/403 status received from API.

src/utils/request.js:76
This is a fallback error from the external API, not printed by the skill itself on token validation failure. However, it could still expose users to contact harvesting. Consider wrapping or filtering API error messages.

声明能力 vs 实际能力

网络访问 通过
声明 READ
推断 READ
src/config/constants.js:10 - BASE_URL: www.guaikei.com
文件系统 阻止
声明 NONE
推断 WRITE
src/utils/log.js:30 - fs.promises.writeFile writes to ./logs/
命令执行 通过
声明 NONE
推断 NONE
No subprocess/exec usage found
环境变量 通过
声明 READ
推断 READ
process.env.GUAIKEI_API_TOKEN used in all CLI files

可疑产物与外联

中危 外部 URL
https://www.douyin.com/user/MS4wLjABxxx

SKILL.md:108

中危 外部 URL
https://www.douyin.com/video/xxx

SKILL.md:111

中危 外部 URL
http://json-schema.org/draft-07/schema#

assets/comment_cli_req.schema.json:2

中危 外部 URL
https://www.guaikei.com

readme.md:24

中危 外部 URL
https://v.douyin.com/xxx

references/options.md:48

中危 外部 URL
https://clawhub.ai/user/engheng-art

skill-card.md:9

中危 外部 URL
https://clawhub.ai/engheng-art/skills/guaikei-douyin-trending-videos-and-rankings

skill-card.md:43

中危 外部 URL
https://www.douyin.com/user/$

src/api/comment.js:16

中危 外部 URL
https://www.douyin.com/note/xxx

src/douyin/comment-cli.js:37

中危 外部 URL
https://www.douyin.com/note/

src/validate/comment.js:10

中危 外部 URL
https://www.douyin.com/video/

src/validate/comment.js:12

中危 外部 URL
https://www.douyin.com/user/

src/validate/post.js:10

依赖与供应链

包名版本来源漏洞备注
Node.js built-in only >=16.14.0 runtime No external npm dependencies - uses only built-in modules (fs, path, https, querystring)

文件构成

35 个文件 · 2765 行
JavaScript 21 个文件 · 1803 行Markdown 5 个文件 · 536 行JSON 9 个文件 · 426 行
需关注文件 · 6
src/utils/token.js JavaScript · 36 行
Promotional content printed on token error
readme.md Markdown · 227 行
https://www.guaikei.com
SKILL.md Markdown · 143 行
https://www.douyin.com/user/MS4wLjABxxx · https://www.douyin.com/video/xxx
src/utils/request.js JavaScript · 173 行
Error message contains contact info
src/douyin/comment-cli.js JavaScript · 168 行
https://www.douyin.com/note/xxx
references/options.md Markdown · 86 行
https://v.douyin.com/xxx
其他文件 · search-cli.js · post-cli.js · keyword.js · args.js · search_cli_resp.schema.json · search.js

安全亮点

No shell command execution - only Node.js built-in modules used
No credential harvesting beyond the expected API token
Input validation with keyword sanitization prevents injection attacks
No base64 encoded execution or obfuscation
No sensitive path access (~/.ssh, ~/.aws, .env)
No remote script execution (curl|bash, wget|sh)
No direct IP network requests or C2 communication
Clean dependency tree - no external npm packages
Token validation uses regex for format checking (16-256 chars, alphanumeric+underscore+dash)
Error handling is comprehensive with proper exit codes