在 Linux 下,可以使用 grep 全局递归搜索文件内容,查找是否包含 ?>hello。
1. 搜索整个服务器
|
1 |
grep -rnF '?>hello' / 2>/dev/null |
参数说明:
-r:递归搜索所有子目录-n:显示匹配内容所在行号-F:按普通字符串匹配,不使用正则表达式2>/dev/null:忽略权限不足等错误信息
2. 只搜索 PHP 文件(推荐)
如果你怀疑 PHP 项目被植入恶意代码,建议这样搜索:
|
1 |
grep -rnFl --include="*.php" '?>hello' /www/wwwroot/ |
这条命令只显示包含目标字符串的 PHP 文件路径。
3. 搜索所有文件,包括隐藏文件
|
1 |
grep -rInaF '?>hello' /www/wwwroot/ |
其中 -a 表示将二进制文件也按文本处理。
4. 同时搜索多种可疑内容
|
1 |
grep -rnE 'eval\(|base64_decode\(|shell_exec\(|\?>hello' /www/wwwroot/ --include="*.php" |
注意,这些函数本身不一定是恶意代码,需要结合上下文判断。
我的建议: 如果你的服务器运行的是 PHP 网站,优先执行:
|
1 |
grep -rnF '?>hello' /www/wwwroot/ --include="*.php" |
另外,如果 ?>hello 是 PHP 文件末尾突然多出来的内容,尤其是你自己没有写过的代码,就要警惕网站文件被篡改。
你这个 ?>hello 是网站页面突然输出的内容,还是怀疑服务器被植入了恶意代码?两种情况排查方法不一样。