您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

如何攻击Java Web应用

发表于:2021-08-30 作者:Bypass 来源:Bypass

本文转载自微信公众号「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:


  1. OWASP API Security-Top 10:https://owasp.org/www-project-api-security/ 
  2. API-Security-Checklist:https://github.com/shieldfy/API-Security-Checklist/ 

常见API相关漏洞:

  • 逻辑越权
  • 信息泄露
  • 接口滥用
  • 输入输出控制
  • 安全错误配置