越来越多的企业采用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. 认识微信小程序开发页面

    先认识一下开发界面,当前是上节中刚刚新建好的一个小程序. 模拟窗口当前页面的路径可以查看左下角Page Path,可以看到当前页面的路径为pages/index/index,正好和app.json里面 ...

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

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

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

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

  4. intouch/ifix嵌入视频控件2(报警视频联动初步思路)

    在项目中有朋友遇到类似的需求,ifix中嵌入视频,并实现报警与视频的联动功能.诸如,重要设备启动时,摄像头自动弹窗,并持续一段时间自动弹窗关掉:设备故障时,摄像头自动截图,录像一段时间存储:设备停止时 ...

  5. react踩坑笔记

    1.create-react-app中配置webpack // 方法一:将项目的配置文件抽取到项目中,即运行: npm run eject // 方法二:使用react-app-rewired 2.c ...

  6. 大数据学习(17)—— HBase表设计

    为啥要把表设计拿出来独立成章?因为我觉得像我这样搞了很多年Java后端开发的技术人员,在学习HBase的时候,会受到关系型数据库3NF.BCNF的影响.事实上,数据库范式在HBase里完全没用,必须转 ...

  7. Linux下的Vim文本编辑器(入门)

    引言 vim filename:打开名为filename的文件,如果不存在就会创建一个filename文件 Vim的三种使用模式 1. 命令模式 启动Vim时,就进入了命令模式 在该模式下: i:切换 ...

  8. ACM金牌选手讲解LeetCode算法《哈希》

    大家好,我是编程熊. 往期文章介绍了<线性表>中的数组.链表.栈.队列,以及单调栈和滑动窗口. ACM金牌选手讲解LeetCode算法<线性表> ACM金牌选手讲解LeetCo ...

  9. centos安装ansible

    此次测试总共有三台机,分别如下: ansible服务器:10.0.0.20 client01:10.0.0.21 client02:10.0.0.22 一.安装ansible 方法一. yum ins ...

  10. linux笔记2随笔

    124.diff命令:文件内容对比 diff命令用于比较多个文本文件之间的差异,这在系统安全防范中非常重要.比如当黑客入侵系统之后,往往会修改一些系统配置文件,从而留下一些后门. 所以作为运维人员.最 ...