首页/安全/应急响应速查/Webshell 特征关键字扫描

Webshell 特征关键字扫描

用特征函数(eval/assert/系统命令)在 Web 目录里扫一遍:命中多但误报高,需结合参数来源与文件来源判断。

应急响应速查安全更新于 2026-10-13

Webshell 特征扫描是什么

特征扫描是用一组高危函数名与危险组合在 Web 目录里做全文检索,快速圈出需要人工审阅的文件。它的定位是缩小范围,而不是下结论:命中多、误报高是正常现象,因为框架、模板引擎与图片处理库也会合法使用这些函数。判断需要两步走——先看内容特征是否与请求参数形成「可控输入直达执行」的组合,再结合文件来源与落地时间确认。

基本信息

高危函数eval、assert、system、shell_exec、passthru、popen、proc_open
编码类特征base64_decode、gzinflate、str_rot13、字符拼接后动态调用
组合特征请求参数直接进入执行函数,如 $_POST、$_GET、$_REQUEST
高置信形态文件体积极小、单行混淆、把代码塞在注释或图片注释段里
覆盖范围php、jsp、jspx、aspx、ashx、phtml 以及被改名的可解析文件
配套动作命中列表复制到隔离目录,先留样本再决定删除

典型使用场景

  • 安全设备告警后快速确认 Web 目录里有哪些疑似后门
  • 按时间线索排查之后,用内容特征做第二轮收敛
  • 站点被挂马或跳转时定位投放脚本
  • 清理后复扫,确认没有同类文件残留
  • 为人工审阅排出优先级:超短与混淆文件排在最前

扫描高危函数与混淆迹象

扫描高危函数与混淆迹象
grep -rEn 'eval\(|assert\(|base64_decode\(|shell_exec\(|passthru\(|system\(' /www --include='*.php' 2>/dev/null | head -n 40
grep -rEln '\$_(POST|GET|REQUEST|COOKIE)\[[^]]+\].*(eval|system|exec|assert|passthru)' /www --include='*.php' 2>/dev/null | head -n 20
grep -rEln 'preg_replace\(' /e' /www --include='*.php' 2>/dev/null | head -n 10
for e in jsp jspx aspx ashx phtml; do grep -rEln 'Runtime\.getRuntime|ProcessBuilder|eval\(' /www --include="*.$e" 2>/dev/null | head -n 5; done
awk 'length($0) < 120 && /eval|assert|base64/' /www/wwwroot/suspect.php 2>/dev/null | head

特征与含义

特征含义误报可能
eval 与 assert把字符串当代码执行模板引擎、旧框架的正常用法
base64_decode 配合 eval解码后执行,常见混淆手法加密配置解密逻辑也有类似写法
system、shell_exec、passthru直接调用系统命令运维脚本、导出工具会合法调用
preg_replace 加 /e 修饰符替换结果被当作代码执行老版本框架的已知用法,需按版本判断
参数直达执行函数外部输入可控,构成完整利用链极少数框架的受控封装
超短文件与单行混淆一句话后门或投放器占位文件、临时调试脚本
命中不等于恶意:直接按关键字批量删文件可能删掉业务组件。正确顺序是复制到隔离目录留样、人工读内容确认利用链、再删除,最后复扫确认没有残留。
扫描要覆盖别名扩展名与可写目录:.phtml、.php5、.inc 等同样可能被解析,图片与缓存目录也常是投放落点。只扫 .php 会漏掉相当一部分样本。

易错点

  • 凭关键字直接删文件:业务类误删会直接停站,必须先读内容确认
  • 只扫 php:jsp、aspx 与 phtml 等别名同样要覆盖,可写目录也要纳入范围
  • 把误报当命中:框架合法使用 eval 的情况很常见,判断要看参数是否可控
  • 扫描范围只限站点根目录:上传目录、缓存目录与多站点部署的其他根目录同样要查
  • 命中后不复制样本:删除后再无法说明攻击者用的是什么工具、什么时候投放的

数据来源与参考

  • OWASP WebShell 检测指南
  • MITRE ATT&CK T1505.003 Web Shell

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌