kali怎么挖php漏洞_借助yuki chan自动化挖php漏洞【步骤】

8次阅读

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

kali怎么挖php漏洞_借助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 yamlAttributeError: '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 不看,也不会告诉你。

text=ZqhQzanResources