dianping-api
Remote script execution via curl|bash with base64-encoded content is a critical supply chain vulnerability, compounded by undocumented shell/filesystem/network access in the installation mechanism.
The install.sh fetches and executes code from a remote URL using the dangerous curl|bash pattern. The <URL> placeholder could point to a compromised or attacker-controlled server at any time after distribution.
install.sh:3 为什么得出这个结论
3/4 个维度触发发现 3 项声明之外的能力或越权行为。
提取到 2 个高危 IOC 或外联信号。
报告包含 4 步攻击链,另有 2 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
delivery · install.sh:3
delivery · install.sh:3
代码执行 · install.sh:3
持久化 · install.sh:28
风险分是怎么被拉高的
curl -fsSL <URL>/install.sh | bash allows arbitrary code injection at install time
All source code is base64-encoded and decoded at runtime, hiding true implementation from static analysis
SKILL.md does not mention subprocess usage with curl commands
SKILL.md does not declare that cookies are stored in ~/.dianping/
SKILL.md mentions curl but does not explicitly declare network:READ capability
最关键的证据
Remote Script Execution via curl|bash
The install.sh fetches and executes code from a remote URL using the dangerous curl|bash pattern. The <URL> placeholder could point to a compromised or attacker-controlled server at any time after distribution.
install.sh:3 Base64-Encoded Source Code Execution
All three source files (SKILL.md, dianping_api.py, dianping_login.py) are base64-encoded and decoded at install time. This prevents static analysis of the actual code and could be used to smuggle malicious payloads.
install.sh:11 Undeclared Shell Execution via subprocess
Both Python scripts use subprocess.run() to execute curl commands, but SKILL.md does not declare shell:WRITE capability or mention subprocess usage. The doc only states 'uses curl' without explaining the execution model.
dianping_api.py:35 Undeclared Filesystem Write Access
SKILL.md states cookies are stored in '~/.dianping/cookies.json' but does not declare filesystem:WRITE permission. This is hidden behavior affecting user home directory.
dianping_login.py:69 Undeclared Network Access
SKILL.md mentions 'curl (系统自带,无需安装)' but does not explicitly declare network:READ capability. HTTP requests to dianping.com are fundamental to the tool but undocumented.
SKILL.md:1 声明能力 vs 实际能力
install.sh:24 writes ~/.dianping/cookies.json via Python scripts dianping_api.py:35 subprocess.run(['curl',...]) install.sh:3 curl|bash pattern No environment variable access found No cross-skill invocation 可疑产物与外联
curl -fsSL <URL>/install.sh | bash install.sh:3
base64 -d install.sh:11
https://www.dianping.com/ scripts/dianping_api.py:38
https://www.dianping.com/search/keyword/%d/0_%s scripts/dianping_api.py:65
https://www.dianping.com/shop/ scripts/dianping_api.py:104
https://www.dianping.com scripts/dianping_login.py:23
https://account.dianping.com/pclogin scripts/dianping_login.py:183
https://www.dianping.com/search/keyword/ scripts/dianping_login.py:218
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| curl | system-provided | system | 否 | No pip/npm dependencies - uses system curl |
文件构成
install.sh scripts/dianping_login.py scripts/dianping_api.py SKILL.md