越来越多的企业采用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. Linux虚拟机与主机网络连接配置与文件传输

    网络配置 对于VMware虚拟机 1. 设置linux系统的网络配置,如下(NAT为默认配置,这里采用这一配置) 2. 主机中配置本地连接-属性-共享-勾选红框配置项,如下:     3.重启虚拟机. ...

  2. 第二篇 -- Go语言转义字符与变量声明

    上节我们讲了GO语言的环境搭建以及创建了Hello World程序.今天学习一下Go语言基础语法 开发前准备 1. 首先创建一个Project02 2. 在Project02下面新建一个test1.g ...

  3. 第二十七篇 -- 如何给静态文本设置成ico图标形式以及如何修改文本框中的内容

    修改静态文本框内容: CWnd* pWnd = GetDlgItem(IDC_STATIC1); pWnd->SetWindowText(_T("Server is on!" ...

  4. 编程思想与算法leetcode_二分算法详解

    二分算法通常用于有序序列中查找元素: 有序序列中是否存在满足某条件的元素: 有序序列中第一个满足某条件的元素的位置: 有序序列中最后一个满足某条件的元素的位置. 思路很简单,细节是魔鬼. 二分查找 一 ...

  5. CC2B本地环境搭建步骤及部署问题解决

    由于最近的项目是之前没接触过的netbeans+glassfish,记录一下最近在工作中搭建本地环境的步骤及遇到的一些问题解决方法: 1.配置java jdk 此过程中遇到一个问题就是在配置系统环境变 ...

  6. Node.js躬行记(7)——定时任务的进化史

    一.纯手工 公司主营的是直播业务,会很许多打榜活动,也就是按主播收到的礼物或收益进行排序,排在前面的会有相应奖励. 纯手工时代,每接到一个活动,就重新写一份,第一次写完.之后就是复制黏贴,再修改,每次 ...

  7. 【硬核】MMU是如何完成地址翻译的

    目录 1. 什么是虚拟内存? 2. 虚拟内存的作用 3. 虚拟内存与物理内存 3.1 CPU存取数据 3.2 物理地址常用术语 3.3 虚拟地址常用术语 3.4 页表常用术语 3.5 页命中/缺页 4 ...

  8. 记一次 .NET 某智慧水厂API 非托管内存泄漏分析

    一:背景 1. 讲故事 七月底的时候有位朋友在wx上找到我,说他的程序内存占用8G,托管才占用1.5G,询问剩下的内存哪里去了?截图如下: 从求助内容看,这位朋友真的太客气了,动不动就谈钱,真伤感情, ...

  9. 建立安全SSL连接PostgreSQL数据库服务器

    建立安全SSL连接PostgreSQL数据库服务器当前物联网的挑战之一就是提供最高的安全级别.这就是为什么需要开启SSL连接到 PostgreSQL. 当你想要安全的存储数据到PostgreSQL数据 ...

  10. 免费,好用的天气预报API

    不多说直接上! 一.API服务,天气API 网站:http://api.help.bj.cn/api/ 怎么使用网站有很详细的解释 $.ajax({ type: "GET", // ...