| 序号 | 文件 | 结论 | 风险分 | 命中规则 |
|---|
站点被挂后门时,攻击者通常只丢一两个文件进去,名字还可能伪装成 wp-config.php、cache.php。全站几百个文件逐个打开看不现实,这一页把常见后门特征做成规则,批量过一遍,先把可疑的那几个挑出来。
判断逻辑不是简单的关键字匹配,而是看组合:单独出现一个 system(),很可能只是运维脚本;但「读取用户输入($_POST)+ 执行命令(system)」同时出现,基本可以确定是后门。同理 eval(gzinflate(base64_decode(...))) 这种三层嵌套解码,是免杀木马的典型写法。
规则分三级:高危是直接执行代码或系统命令的函数;可疑是解码、写文件、读取原始请求体这类配合动作;提示是超长单行、大段十六进制转义这类混淆特征。页面上可以按敏感度筛选,避免一屏都是「可能有问题」。
整页没有后端接口,ZIP 也在浏览器里解开(用原生的 DecompressionStream),文件不离开本机。
| 想做什么 | 怎么做 | 说明 |
|---|---|---|
| 站点疑似被挂马,先查哪几个文件 | 打包整站上传 zip | 按风险分排序,从最高分的往下看 |
| 收到别人给的一套源码 | 只扫 php | 看有没有混进后门文件 |
| 排查某几个可疑文件 | 直接拖这几个 php | 比上传整包快 |
| 确认清理干净了 | 清空后重扫 | 分数归零才算清完 |
| 给同事一份结论 | 导出报告 | 文件名、行号、规则说明、代码片段都有 |
很多正常程序也会用 eval、base64_decode、file_put_contents(比如缓存、模板编译、图片处理)。规则只能看出「这里出现了这类函数」,判断不了意图。看结论列:只有「读用户输入 + 执行」同时出现才会判高危,其余标成可疑或留意,需要你自己看那几行代码。
Windows 打的 zip 常用 GBK 编码文件名,而 ZIP 规范建议用 UTF-8。页面先按 UTF-8 读,读不出正常字符再按 GBK 重读一次,所以大部分中文名能正常显示;如果还是乱码,说明压缩工具写的是别的编码,不影响文件内容扫描。
高危规则每条 10 分,可疑 4 分,提示 1 分;「读输入 + 执行」同时命中额外加 20 分,「解码 + 执行」同时命中加 15 分。所以一个典型的一句话木马(eval($_POST['x']))会拿到 30 分以上,而一个正常用到 eval 的模板引擎大约只有 10 分。
能查出一部分。像 eval(gzinflate(base64_decode(...))) 这种,解码函数与执行函数同时出现,规则会直接判高危。但如果后门把代码藏在图片里、或用了自定义加密再自己解密,静态规则看不出明文,需要动态查杀或人工分析。
不会。文件只被当成文本读取,正则匹配完就结束,没有任何执行环境。所以扫描本身不会触发后门,也不会连外网。但也因为这样,它只能看「代码长什么样」,不能看「跑起来干了什么」。
这个工具完全在你的浏览器里运行:你输入的内容、上传的文件,都不会离开你的电脑,也不会传到任何服务器。
放心用,数据只在你自己的电脑上转一圈。
用手机相机扫描二维码,即可继续使用该工具
遇到问题或有好建议?告诉我们。