越來越多的企業採用Java語言構建企業Web應用程序,基於Java主流的框架和技術及可能存在的風險,成爲被關注的重點。
本文從黑盒滲透的角度,總結下Java Web應用所知道的一些可能被利用的入侵點。
1、中間件漏洞
基於Java的Web項目部署會涉及一些中間件,一旦中間件配置不當或存在高危漏洞,就會嚴重影響到整個系統的安全。
1.1 Web中間件
Weblogic系列漏洞:弱口令 && 後臺getshell、
SSRF漏洞、
反序列化RCE漏洞
Jboss系列漏洞:未授權訪問Getshell、
反序列化RCE漏洞
Tomcat系列漏洞:弱口令&&後臺getshell、
Tomcat PUT方法任意寫文件漏洞
Websphere系列漏洞:弱口令&&後臺getshell、
XXE漏洞、
遠程代碼執行漏洞
Coldfusion系列漏洞:文件讀取漏洞、
反序列化RCE漏洞
GlassFish系列漏洞:弱口令&&後臺getshell、
任意文件讀取漏洞
Resin系列漏洞:弱口令&&後臺getshell、
任意文件讀取漏洞
1.2 緩存/消息/搜索/分佈式中間件
Redis系列漏洞:未授權訪問getshell、
主從複製RCE
ActiveMQ系列漏洞:ActiveMQ任意文件寫入漏洞、
ActiveMQ反序列化漏洞
Kafka系列漏洞:未授權訪問漏洞、
反序列化漏洞
Elasticsearch系列漏洞:命令執行漏洞、
寫入webshell漏洞
ZooKeeper系列漏洞:未授權訪問漏洞
框
2、框架及組件漏洞
基於Java開發的Web應用,會使用到各種開發框架和第三方組件,而隨着時間推移,這些框架和組件可能早已不再安全了。
2.1 開發框架
2.1.1 Struts2 系列漏洞
S2-001到S2-061漏洞
安全公告:https://cwiki.apache.org/confluence/display/WW/Security+Bulletins
2.1.2 Spring 系列漏洞
Spring Security OAuth2遠程命令執行漏洞
Spring WebFlow遠程代碼執行漏洞
Spring Data Rest遠程命令執行漏洞
Spring Messaging遠程命令執行漏洞
Spring Data Commons遠程命令執行漏洞
2.1.3 SpringCloud 系列漏洞
Spring Boot Actuator 未授權訪問
Springt Boot 相關漏洞:https://github.com/LandGrey/SpringBootVulExploit
2.1.4 Dubbo 系列漏洞
Dubbo 反序列化漏洞、Dubbo 遠程代碼執行漏洞
2.2、第三方組件
2.2.1 Shiro 系列漏洞
Shiro 默認密鑰致命令執行漏洞、Shiro rememberMe 反序列化漏洞(Shiro-550)
Shiro Padding Oracle Attack(Shiro-721)
2.2.2 Fastjson 系列漏洞
Fastjson反序列化RCE、Fastjson遠程命令執行
2.2.3 Jackson系列漏洞
反序列化RCE漏洞
2.2.4 Solr系列漏洞
XML實體注入漏洞、文件讀取與SSRF漏洞、遠程命令執行漏洞
2.2.5 JWT漏洞
敏感信息泄露、僞造token、暴力破解密鑰
3、API 接口漏洞
基於前後端分離的開發模式,都需要通過調用後端提供的接口來進行業務交互,api接口安全測試是一項非常重要的任務。
3.1 API Security
OWASP API Security-Top 10:https://owasp.org/www-project-api-security/
API-Security-Checklist:https://github.com/shieldfy/API-Security-Checklist/
3.2 常見API相關漏洞
邏輯越權
信息泄露
接口濫用
輸入輸出控制
安全錯誤配置