dygod-movies
Movie crawler skill with legitimate functionality but multiple security misconfigurations including hardcoded credentials in documentation and code, unpinned dependencies, and unauthenticated API endpoints.
SKILL.md contains plaintext credentials for Synology NAS: account=xiaoai, passwd=Xx654321 at 192.168.123.223:5000
SKILL.md:120 为什么得出这个结论
2/4 个维度触发声明资源与推断能力基本一致。
提取到 1 个高危 IOC 或外联信号。
报告包含 0 步攻击链,另有 2 项高危或严重发现。
发现 5 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
Synology NAS password 'Xx654321' exposed in documentation examples
scripts/dygod_crawler.py:305-308 contains plaintext credentials
requirements.txt uses '*' version specifiers for all packages
service/main.py exposes download endpoint without auth
最关键的证据
Hardcoded NAS credentials in documentation
SKILL.md contains plaintext credentials for Synology NAS: account=xiaoai, passwd=Xx654321 at 192.168.123.223:5000
SKILL.md:120 Hardcoded NAS credentials in source code
scripts/dygod_crawler.py contains hardcoded Synology credentials at module level
scripts/dygod_crawler.py:305 Unpinned Python dependencies
requirements.txt uses '*' for all versions, allowing automatic upgrades that could introduce vulnerabilities
service/requirements.txt:1 Unauthenticated FastAPI endpoints
The /download and other endpoints have no authentication, allowing anyone to trigger downloads
service/main.py:170 Insecure example in documentation
SKILL.md examples use curl.exe with credentials in URL query parameters, promoting insecure patterns
SKILL.md:132 声明能力 vs 实际能力
SKILL.md:56 cache file writes scripts/dygod_crawler.py:73-84 HTTP GET requests No subprocess/shell execution found No environment variable access 可疑产物与外联
120.0.0.0 scripts/dygod_crawler.py:40
http://192.168.123.223:5000/webapi/entry.cgi?api=SYNO.API.Auth&version=6&method=login&account=xiaoai&passwd=Xx654321&session=DownloadStation&format=sid SKILL.md:120
http://192.168.123.223:5000/webapi/DownloadStation/task.cgi SKILL.md:132
http://192.168.123.223:5000/webapi/DownloadStation/task.cgi?api=SYNO.DownloadStation.Task&version=1&method=list&additional=transfer&_sid=YOUR_SID SKILL.md:161
http://192.168.123.223:5000/webapi/DownloadStation/task.cgi?api=SYNO.DownloadStation.Task&version=1&method=delete&id=TASK_ID&force_complete=false&_sid=YOUR_SID SKILL.md:167
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd data/gndy_index.html:1
http://www.w3.org/1999/xhtml data/gndy_index.html:2
http://www.dygod.net data/gndy_index.html:43
http://www.dygod.net/ data/gndy_index.html:44
https://dygod.net/html/gndy/dyzz/20260307/131013.html data/movies_cache.json:6
https://dygod.net/html/gndy/dyzz/20101019/28863.html data/movies_cache.json:34
https://dygod.net/html/gndy/dyzz/20070612/2906.html data/movies_cache.json:39
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | >=2.32.0 | pip | 否 | Version not pinned |
| beautifulsoup4 | >=4.12.0 | pip | 否 | Version not pinned |
| fastapi | >=0.115.0 | pip | 否 | Version not pinned |
| uvicorn | >=0.32.0 | pip | 否 | Version not pinned |
| httpx | >=0.27.0 | pip | 否 | Version not pinned |
文件构成
data/tv_index.html data/gndy_index.html data/movies_cache.json scripts/dygod_crawler.py data/tv_cache.json service/main.py SKILL.md service/requirements.txt