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