Tomcat日志中查找安全漏洞的關鍵步驟與方法
Tomcat的核心日志文件集中在logs
目錄下,其中與安全分析最相關的兩類日志為:
localhost_access_log.2025-04-25.txt
):記錄所有HTTP請求的詳細信息(IP地址、時間、請求方法、URL、狀態碼等),是檢測外部攻擊的主要來源;catalina.out
或localhost.<date>.log
):記錄運行時異常(如SQL語法錯誤、權限拒絕、類加載失敗等),可反映系統被利用的痕跡。'
、雙引號"
、OR 1=1
、UNION SELECT
等),例如:GET /login.jsp?username=admin'--&password=123 HTTP/1.1
(--
為SQL注釋符,用于繞過密碼驗證);java.sql.SQLException: Incorrect syntax near ''
),說明攻擊者通過注入非法SQL語句觸發了數據庫報錯。<script>
、alert()
、onerror=
等),例如:GET /search?q=<script>alert(1)</script> HTTP/1.1
;http://evil.com/attack.html
),且請求攜帶合法用戶會話Cookie(如JSESSIONID=xxxx
),則可能是CSRF攻擊;POST /upload
)且文件名包含可疑擴展名(如.jsp
、.jspx
、.php
),例如:POST /upload?filename=test.jsp HTTP/1.1
;FileUploadException
或文件路徑泄露(如/WEB-INF/classes/
下的非法文件);若上傳失敗,可能出現Invalid file type
等提示,說明攻擊者在嘗試突破文件類型限制。404 Not Found
錯誤(如同一IP在1分鐘內請求100次不存在的頁面),可能是掃描工具(如Nikto、DirBuster)在探測敏感路徑;GET
請求,占用大量帶寬或線程池資源,可能是DDoS攻擊;/admin
、/manager/html
(Tomcat管理后臺)、/WEB-INF/config.xml
(配置文件)等敏感路徑,說明攻擊者在嘗試未授權訪問。grep
、awk
等命令快速篩選關鍵信息,例如:grep "404" /opt/tomcat/logs/access_log
(查找所有404錯誤);grep "SQLException" /opt/tomcat/logs/catalina.out
(查找SQL異常);conf/logging.properties
中調整日志級別(如org.apache.catalina.level=DEBUG
),捕獲更多細節(如請求參數、會話信息),但需平衡性能與日志量;logging.properties
設置日志分割(如java.util.logging.FileHandler.limit=50000
,限制單個日志文件大小為50MB),避免日志文件過大導致分析困難;conf/server.xml
限制管理后臺訪問IP(如<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.168\.1\.\d+" />
),啟用HTTPS加密通信;