在线PHP代码审计系统|PHP源码漏洞扫描

PHP 代码审计 定位到行 45 类风险 更新于 2026-11-04
要审计的代码
支持 .php 与 .zip;代码不上传,审计在本机完成
把 PHP 文件或 ZIP 拖到这里,或 点击选择 单文件 5 MB 以内 · ZIP 解开后的代码总量 20 MB 以内 · 只当文本读,不运行代码
还没有加入文件
设置 默认全部列出;只看能直接拿下权限的那几类,选「只报高危」
报告等级
加好代码后点「开始审计」。结果只指出「哪一行像什么」,是不是真漏洞还要你结合上下文判断。
审计结果 点任意一行展开那一行代码
还没有审计结果
把要检查的 PHP 文件或整站压缩包放进来,几秒后就能看到哪几行值得先看。
只在浏览器里读文本:代码不上传、不被执行;列出的每一行都是线索,结论要你自己确认。

工具介绍

代码审计,说白了就是把源码认真读一遍,找出可能被攻击者利用的地方。人工通读几百个文件不现实,这一页把常见的高风险写法整理成检查项,把 PHP 文件或整站压缩包放进来,几秒就能得到一张「哪个文件、第几行、像什么问题」的清单,你先看这几行就够了。

它看的不是关键词,而是这一行在做什么。单独出现一个 system(),很可能只是运维脚本;但「参数来自用户输入」和「交给 system 执行」出现在同一行,基本就是命令执行漏洞。所以结果里会告诉你「文件包含函数里出现了变量」这类具体判断,而不是丢给你一个函数名。

结果分三档,方便你先处理要紧的:高危是能直接执行代码、执行系统命令、读写任意文件的写法;可疑是注入、变量覆盖、越权读取这类要看上下文才能定的写法;提示是 phpinfo() 这种不致命、但上线前建议删掉的写法。

代码全程只在你的浏览器里被当作文本读取,ZIP 也在本地解开,不上传、不执行,源码不会离开你的电脑。

会检查哪些问题

检查项说明
文件包含include / require 后面接了变量,可能被塞进任意文件来执行
动态执行代码eval、assert、create_function 里出现变量,直接给了一个代码执行入口
命令执行system / exec / shell_exec / popen 以及反引号里拼了变量,等于把服务器控制权交出去
正则执行preg_replace 用了 /e 模式又带变量,替换结果会被当成代码执行
回调执行call_user_func、array_map、usort 这类函数的回调参数是变量,可以挂上任意函数
变量函数(后门)变量名直接当函数跑,参数又取自提交数据,最典型的一句话木马
文件上传move_uploaded_file 出现,要确认类型和落地目录都受控
反序列化unserialize 处理外部数据,可能被构造对象链走通到执行代码
写文件落地用提交上来的数据直接写文件,典型的「传个参数就给自己留个后门」
读取与列目录读文件、列目录的函数里,路径来自变量,可能读到配置和密钥
文件操作删除、改名、改权限、建目录里路径来自变量,可能被毁站或腾出可写目录
变量覆盖parse_str、extract、$$ 可变变量,能把已有变量悄悄改掉
请求来源可伪造用 HTTP_CLIENT_IP、X-Forwarded-For、Referer 判断来源,这些值客户端随便写
转义被绕过urldecode、stripslashes 处理外部数据,会把已有的转义去掉
SQL 注入select / delete / insert / update 和查询接口里直接拼变量,没有占位符
输出型 XSSecho、print_r、var_dump、<?= 直接输出提交内容,脚本会在访客浏览器里跑
任意跳转header 或页面跳转拼了外部输入,会被用来钓鱼或污染响应头
SSRFcurl 请求的地址来自变量,能让服务器替攻击者去访问内网
XXE解析 XML 时开着外部实体,可读文件、可顺手探内网
弱哈希与弱随机密码用 md5 / sha1,令牌用 rand / uniqid / 时间戳,都太好猜
硬编码口令密码、密钥、令牌直接写在代码里,源码一泄露就全线失守
上传类型只看 MIME用 $_FILES 里的 type 判断类型,这个值浏览器可以随便伪造
危险配置线上打开错误显示,或者整体关掉报错,两种都容易出事
环境变量与扩展putenv 带变量、dl 动态加载扩展,都是绕过限制的常用手法
信息泄露phpinfo、把 $_SERVER 之类直接打出来
混淆与后门痕迹@ 抑制报错、超长单行、大段十六进制、超长 Base64、chr 拼接、多级解码链

常见问题

正常代码也被标出来了,是不是误报?

很可能是。缓存、模板编译、图片处理这些正常功能也会用到 eval、file_put_contents 这类函数,工具只能看出「这里出现了这种写法」,判断不了你的意图。所以结果里写的是「可能存在」,看的时候重点看两点:参数是不是来自用户提交的数据、这个文件本来该不该有这种操作。

审计过程会执行我的代码吗?

不会。文件只被当作文本读进来,比对完就结束,没有任何运行环境,所以既不会触发后门,也不会连外网。代价是它只能看「代码长什么样」,看不了「跑起来干了什么」。

支持哪些文件?

单个文件支持 .php、.phtml、.inc 以及 php3–php8;也可以直接把整个项目的 ZIP 丢进来,压缩包里这些后缀的文件会逐个审计,一次最多 400 个、解开后总量 20 MB 以内。

为什么有些漏洞查不出来?

工具是按「危险写法」找的,代码如果经过自定义加密、把关键字符串拆开拼接、或者把逻辑拆到好几个文件里传参,静态检查就看不出完整链路。它适合做第一遍粗筛,真正的逻辑漏洞、越权、业务设计缺陷还得人工读。

ZIP 里的中文文件名显示成乱码?

Windows 打的压缩包常用 GBK 存文件名,而标准建议用 UTF-8。页面先按 UTF-8 读,读不出正常字符会按 GBK 再读一次,大部分中文名能正常显示;万一还是乱码,不影响文件内容的审计。

结果能直接当作漏洞结论吗?

不建议。它给的是线索和位置,最终是不是漏洞要看上下文:数据从哪来、有没有过滤、能不能真的被外部触发。给同事或客户出报告时,最好每条都附上你自己的判断。

关于隐私

这个工具完全在你的浏览器里运行:你上传的文件、粘贴的代码,都不会离开你的电脑,也不会传到任何服务器。

  • 不上传——读取、解压、比对全部在本地完成,页面不向后端发送你的源码;
  • 不留存——我们不保存、不记录你的任何代码内容;
  • 断网也能用——页面加载完成后,断开网络照样正常审计。

放心用,源码只在你自己的电脑上转一圈。

更新日志

2026-10-25
功能体验升级与性能优化
早期版本
工具正式上线发布

相关工具推荐