越来越多的企业采用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相关漏洞
逻辑越权
信息泄露
接口滥用
输入输出控制
安全错误配置