温馨提示×

centos php日志怎样定位漏洞

小樊
42
2026-09-24 08:43:19
栏目: 编程语言

在 CentOS 上通过 PHP 日志定位漏洞,一般不是“直接看日志就出漏洞”,而是从日志中发现异常行为 → 反推代码/配置问题 → 确认漏洞。下面按实战流程说明。


一、先确认 PHP 日志在哪

1. 看 php.ini

php --ini
# 或
rpm -ql php-common | grep php.ini

常见位置:

/etc/php.ini
/etc/php.d/*.ini

关键配置:

log_errors = On
error_log = /var/log/php/php_error.log
display_errors = Off   # 生产环境应关闭

2. 常见 PHP 日志路径(CentOS)

/var/log/php/php_error.log
/var/log/httpd/error_log
/var/log/nginx/error.log

如果是 PHP-FPM:

/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log

二、从日志中“看异常”而不是“看错误”

1. 高频错误 ≠ 漏洞,但值得注意

grep -E "PHP Warning|PHP Fatal error" /var/log/php/php_error.log

常见可疑点:

  • Undefined index
  • include(): Failed opening
  • eval()'d code
  • preg_replace():
  • assert():

这些本身不是漏洞,但常被漏洞利用链使用


2. 重点关注“危险函数”调用日志

在日志中搜索:

grep -E "eval|system|exec|shell_exec|passthru|popen|proc_open" /var/log/php/php_error.log

如果看到:

PHP Warning: system() has been disabled for security reasons

说明有人在尝试执行系统命令


三、结合 Web 服务器日志定位“攻击来源”

1. Apache

tail -f /var/log/httpd/access_log

2. Nginx

tail -f /var/log/nginx/access.log

3. 搜索攻击特征

grep -E "union select|base64_decode|/etc/passwd|php://input|eval\(" access_log

示例攻击 URL:

GET /index.php?page=../../etc/passwd
GET /uploads/shell.php
POST /admin.php HTTP/1.1

四、用时间戳“联动”定位漏洞代码

步骤示例

  1. 发现 PHP 日志:
[2026-01-21 10:22:03] PHP Warning: include(../../config.php)
  1. 查同一时间 Web 日志:
grep "10:22:03" /var/log/nginx/access.log
  1. 找到请求:
GET /view.php?file=../../config.php
  1. 看代码:
include($_GET['file']);

✅ 确认:文件包含漏洞(LFI)


五、常见“日志 → 漏洞”对应关系

日志表现 可能漏洞
include($_GET) 报错 文件包含
system() / exec() 报错 命令执行
SQL syntax error SQL 注入
preg_replace /e 老版本 RCE
move_uploaded_file 失败 上传漏洞
open_basedir 报错 目录穿越

六、增强日志定位能力(推荐)

1. 开启审计(可选)

log_errors = On
error_log = syslog

2. 使用 PHP 安全扩展

  • suhosin(老)
  • snuffleupagus(新)

3. 用审计工具

grep -rn "eval(" /var/www/html

或:

lynis audit system

七、总结一句话

CentOS 上定位 PHP 漏洞 = PHP 错误日志 + Web 访问日志 + 时间戳关联 + 代码回溯

如果你愿意,可以:

  • 贴一段 PHP 日志
  • 或说明 Web 服务(Apache/Nginx)+ PHP 版本

我可以直接帮你分析是哪类漏洞。

0 踩