在Ubuntu系统上排查Tomcat日志,其实就像是在做一场数字世界的侦探工作——从海量的请求记录里,找到那些真正有威胁的蛛丝马迹。今天我们就来聊聊,怎么从这些日志中高效地揪出攻击者。

识别攻击流量
攻击者为了绕过WAF等防护机制,经常会对请求内容进行编码伪装。常见的几种编码特征,值得你重点关注:
- URL编码:这是最常用的手段。如果请求参数中间出现大量以
%开头的字符串(比如%3Cscript%3E解码后就是),就要提高警惕了。 - Base64编码:尾部常常带有
=或==。例如PHNjcmlwdD4=,解码后就是——典型的XSS载荷。 - 16进制编码:以
\x开头,比如\x61对应字符a。 - Unicode编码:以
\u或开头,例如\u7F16\u7801就是“编码”二字。
常见攻击类型及特征
在Tomcat的日志中,不同攻击会留下各自鲜明的特征,熟悉它们能帮你快速定位问题。重点看这几个方向:
- SQL注入:参数中如果出现
and 1=1、union select、from information_schema这些关键字,基本可以断定是在尝试注入。 - XSS攻击:请求里嵌入
、onerror=alert()等恶意脚本内容,目的是在用户浏览器中执行。 - 命令执行:参数里包含系统命令,比如
/bin/bash、certutil,或者是反弹Shell的语句。 - Webshell连接:访问路径非常规,比如突然出现
admin.php这种文件,或者参数里带了eval、base64_decode这类敏感函数。 - 敏感信息泄露:攻击者试图读取
web.config、/etc/passwd、.bak备份文件等。这些请求在日志中会留下明显的路径特征。
攻击成功判断与误报分析
光看到攻击特征还不够,关键在于判断攻击是否真的得手。你需要结合状态码和返回内容综合分析:
- 状态码:
200(成功)、302(重定向)、500(服务器错误)。其中200是最值得警惕的。 - 返回包内容:如果返回内容里出现了数据库报错信息、明文敏感数据,或者脚本执行结果,基本可以确认攻击已经成功。
合规与防御建议
最后,聊几个实操层面的建议,尤其适用于日常运维:
- 严守法律底线:所有渗透测试和分析工作,都必须事先获得明确授权。未经授权的扫描和入侵,是绝对的红线,没有例外。
- 优化防护规则:定期更新WAF策略,结合威胁情报动态封禁恶意IP。规则不是一成不变的,关键是要根据新出现的攻击手法持续迭代。
- 监控重点时段:非工作时间的日志、高频请求、来自境外IP的访问,往往藏着最危险的行为。把这些维度列为监控重点,能大幅提升预警效率。
通过上述方法,可以更系统性地从Tomcat日志中识别潜在攻击,并及时采取应对措施。当然,安全策略不是一劳永逸的,建议定期对审计和防御机制进行复盘与更新,才能跟上不断变化的安全威胁。
