越来越多的企业采用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相关漏洞:

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

如何攻击Java Web应用的更多相关文章

  1. ref:一种新的攻击方法——Java Web表达式注入

    ref:https://blog.csdn.net/kk_gods/article/details/51840683 一种新的攻击方法——Java Web表达式注入 2016年07月06日 17:01 ...

  2. Java Web使用过滤器防止Xss攻击,解决Xss漏洞

    转: Java Web使用过滤器防止Xss攻击,解决Xss漏洞 2018年11月11日 10:41:27 我欲乘风,直上九天 阅读数:2687   版权声明:本文为博主原创文章,转载请注明出处!有时候 ...

  3. kpvalidate开辟验证组件,通用Java Web请求服务器端数据验证组件

    小菜利用工作之余编写了一款Java小插件,主要是用来验证Web请求的数据,是在服务器端进行验证,不是简单的浏览器端验证. 小菜编写的仅仅是一款非常初级的组件而已,但小菜为它写了详细的说明文档. 简单介 ...

  4. java web sql注入测试(1)---概念概述

    在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...

  5. Java Web表达式注入

    原文:http://netsecurity.51cto.com/art/201407/444548.htm 0×00 引言 在2014年6月18日@终极修炼师曾发布这样一条微博: 链接的内容是一个名为 ...

  6. Java Web开发 - 持久型/存储型XSS漏洞

    Java Web开发 - 持久型/存储型XSS漏洞 1.什么是XSS漏洞攻击? XSS是跨站脚本攻击(Cross Site Scripting)的简称,之所以叫XSS而不是CSS相比大家都能明白了吧, ...

  7. Java Web安全之程序逻辑缺陷

    Java Web程序逻辑缺陷本质是由于程序设计和开发者设计的程序执行逻辑存在某种缺陷而导致的安全隐患.企业的代码审查和渗透测试通常主要针对的大多是诸如xss攻击和sql注入和跨站点脚本这些头条式漏洞, ...

  8. java Web工程师面试题集绵

    一.Java 基础 1.JDK .JRE 和JVM关系是什么? 答:A. JDK(Java Development Kit)即Java开发工具包,包含编写Java程序所必须的编译.运行等开发工具以及J ...

  9. Java Web 学习与总结(三)会话跟踪

    何为会话跟踪?举个简单的例子,比如登陆到某购物网站后,在一定时间内无论你在这个网站中切换到任意的网页,只要不执行退出操作,一直保持着你账号的登录状态. 那么在Java Web中我们应当如何去实现这一操 ...

随机推荐

  1. gitbook导出markdown文件为pdf格式

    前言本人想完成如题所示的操作,可是兜兜转转在网上搜了好久,不是Linux下的教程就是mac OS下的教程,而且一大堆windows的教程能够说明白的寥寥无几,本着分享的态度,鄙人今天特整理教程如下: ...

  2. [考试总结]noip18

    发现之前咕掉了这个考试的总结. 今天就把它给补上. 这也是一个炸裂的一场 开局以为 \(T1\) 可做,然而事实证明我又错了... 莽了一个随机化上去,轻松过了所有样例... 以为稳了 然而挂掉了.. ...

  3. GraphPad Prism 9.0安装破解教程

    graphpad prism 9.0是一款强大的科学软件,拥有大量分析图表,prism是回归分析的著名软件之一,非常适用于科研生物医学等领域.本文提供其破解版,激活码,序列号,破解教程等,可以完美激活 ...

  4. 大数据学习(20)—— Zookeeper介绍

    ZooKeeper是什么 就像相声大师冯巩每次出场都说:"亲爱的观众朋友们,我想死你们啦"一样,我再强调一次,学习大数据官网很重要.Zookeeper官网看这里ZooKeeper ...

  5. OpenFaaS实战之六:of-watchdog(为性能而生)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. Feign实战技巧篇

    介绍Feign在项目中的正确打开方式 看了上一期Feign远程调用的小伙伴可能会问:阿鉴,你不是说上一期讲的是Feign的99%常用方式吗?怎么今天还有正确打开方式一说呀? 阿鉴:是99%的常用方式, ...

  7. 攻防世界逆向——game

    攻防世界逆向:game wp 攻防世界逆向新手区的一道题目. 是一道windows的creak,动态调试打开是这样的: 题目说明是让屏幕上所有的图像都亮之后,会出现flag,看来应该是可以玩出来的. ...

  8. MySQL 执行优化查询

    查询执行的基础 当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的.当向MySQL发送一个请求的时候,MySQL执行过程如图1-1所示: 图1-1 查询执 ...

  9. RHCAS_DAY06

    vi/vim文本编辑器 Vim是从 vi 发展出来的一个文本编辑器,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性 vi/vim 共分为三种模式:命令模式.输入模式.底线命令模式(末 ...

  10. GO语言安装以及国内镜像

    首先,下载GO语言,国内的话用 Go下载 - Go语言中文网 - Golang中文社区 (studygolang.com) 可能会快一点 然后根据自己的系统选择下载的包,我是win10,就选go1.1 ...