Yuki Chan 是一个已归档的 PHP 静态扫描工具,仅能识别危险函数调用和不安全拼接模式,不具备动态分析、污点追踪或逻辑漏洞挖掘能力,不能自动挖洞。

Yuki Chan 是什么,它真能自动挖 PHP 漏洞?
Yuki Chan 并不是一个活跃维护的、开箱即用的“自动化 PHP 漏洞挖掘工具”,而是一个已归档(archived)的 GitHub 项目(yukichang/php-vuln-scanner),核心功能是静态扫描 PHP 文件中常见危险函数调用(如 eval()、system()、exec()、preg_replace() with /e flag 等)和不安全的变量拼接模式。它不发包、不交互、不 fuzz、不分析逻辑漏洞(如越权、业务逻辑缺陷),也不做动态行为监控。
换句话说:它只能帮你快速发现“疑似危险代码片段”,不能代替人工审计,也不能发现大多数真实环境中利用的复合型漏洞(比如反序列化链、二次注入、SSRF+XXE 组合等)。
在 Kali 上运行 Yuki Chan 的实际步骤(含依赖与报错修复)
该项目基于 Python 2.7,且依赖已过时的库(如 pyyaml==3.11),直接在现代 Kali(默认 Python 3.11+)上会报错。必须手动降级环境或隔离运行:
- 推荐用
python2.7 -m pip install virtualenv创建独立 Python 2 环境 - 克隆后进入目录,执行
python2.7 -m virtualenv venv && source venv/bin/activate - 再运行
pip install -r requirements.txt—— 注意要注释掉pyyaml==3.11这行,改用pip install pyyaml==5.4.1(兼容 Python 2.7 的最后可用版本) - 扫描命令示例:
python2.7 yuki_chan.py -p /var/www/html/ -o report.json
常见报错:ImportError: No module named yaml 或 AttributeError: 'str' object has no attribute 'decode',基本都源于 Python 版本错配或 PyYAML 不兼容。
立即学习“PHP免费学习笔记(深入)”;
比 Yuki Chan 更实用的 PHP 漏洞挖掘组合方案
真实渗透中,靠单个静态扫描器收效极低。更可靠的做法是分层协作:
- 先用
php -l扫描语法错误(快速排除不可执行文件) - 用
grep -r定向搜关键函数:grep -r "eval\|system\|exec\|passthru\|shell_exec\|popen\|proc_open" /var/www/html/ --include="*.php" - 用
phpsploit(Kali 自带)做动态交互式测试,验证$_GET/$_POST可控点是否真能执行命令 - 对疑似反序列化入口,用
phpggc生成 payload,配合curl手动验证 - 复杂逻辑场景(如 CMS 插件、自定义路由),必须读源码 ——
Yuki Chan根本不会告诉你$_SESSION['user_role']是怎么被污染的
为什么很多人误以为 Yuki Chan “能挖洞”?
因为它名字带“vuln scanner”,输出里有“RCE detected”这类字样,容易让人忽略上下文限制。实际上它只是正则匹配器 + AST 简单遍历,没有控制流分析、没有污点追踪、不识别类型转换绕过(如 (int)$_GET['id'] 后再拼进 SQL)、不处理编码混淆(base64、hex、异或等)。你看到的“高危行”,80% 需要人工确认是否可达、是否可控、是否被过滤。
真正卡住渗透进度的,从来不是“找不到 eval”,而是“找到了 eval,但参数从哪来、怎么传、中间经过了几个过滤函数、有没有被 json_decode 重解析”——这些,Yuki Chan 不看,也不会告诉你。











