本文转载自微信公众号「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相关漏洞:
- 逻辑越权
 - 信息泄露
 - 接口滥用
 - 输入输出控制
 - 安全错误配置
 
