网络安全学习之框架漏洞
学习框架漏洞的意义
学习框架漏洞可以在网站漏洞挖掘的信息收集阶段收集到该网站的框架信息时用已经发现的历史漏洞来尝试漏洞挖掘(不是每一个网站的框架出现问题时都会打补丁),而学习框架漏洞能在发现框架版本和类型时能第一时间判断是否存在漏洞且知道该信息是框架用于搜索历史漏洞,所以框架漏洞的学习是非常重要的。
一、spring框架常见漏洞
spring简介
spring是非常常见的Java web框架,也是网络安全研究的热门框架。
Actuators介绍
Actuators是spring boot用来对系统进行监控的一个功能模块,spring boot是spring常见的框架扩展,如果没有做好权限控制非法用户可以用其获得应用系统中的监控信息。
spring区分
spring boot框架项目的404 405都如一下页面一样(绿叶草)。
看到该页面可以判定该框架为spring boot框架,就可以尝试Actuators功能模块的漏洞挖掘。
默认路径
有些程序员会自定义 /manage 、 /management 、项目 App 相关名称为 spring 根路径
Spring Boot Actuator 1.x 版本默认内置路由的起始路径为 / ,2.x 版本则统一以 /actuator 为起始路径
Spring Boot Actuator 默认的内置路由名字,如 /env 有时候也会被程序员修改,比如修改成 /appenv
SpringBoot历史漏洞
whitelabel error page SpEL RCE
spring cloud SnakeYAML RCE
eureka xstream deserialization RCE
jolokia logback JNDI RCE
jolokia Realm JNDI RCE
restart h2 database query RCE
h2 database console JNDI RCE
mysql jdbc deserialization RCE
restart logging.config logback JNDI RCE
restart logging.config groovy RCE
restart spring.main.sources groovy RCE
restart spring.datasource.data h2 database RCE
原文链接:https://blog.csdn.net/weixin_53747497/article/details/129891959
spring boot常见端点
/autoconfig 提供了一份自动配置报告,记录哪此自动配置条件通过了,哪些没通过
/contigprops 描述配置属性 (包含默认值) 如何注入 Bean
/beans 描述应用程序上下文里全部的 Bean,以及它们的关系
/dump 获取线程活动的快照 (常见)
/env 获取全部环境属性 (常见)
/env/(name) 根据名称获取特定的环境属性值
/health 报告应用程序的健康指标,这些值由 Healthlndicator 的实现类提供 (常见)
/info 获取应用程序的定制信息,这些信息由 info 打头的属性提供
mappings 描述全部的 URI 路径,以及它们和控制器 (包含 Actuator 端点)的映射关系
/metrics 报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数
/metrics/(name) 报告指定名称的应用程序度量值
/shutdown 关闭应用程序,要求 endpoints.shutdown.enabled 设置为 true (默认为 false)
/trace 提供基本的 HTTP 请求跟踪信息 (时间截、HTTP 头等)
例子
1.x版本:http://ip:port/env
2.x版本:http://ip:port/actuator/env
注:遇到springboot项目可以对这些端口通过wfuzz去枚举(这里的路径可以去网上搜索更多的路径,做一个比较大且全的字典,增加fuzz成功几率,fuzz时只显示200响应头的数据,不显示404的),很可能会出现因为配置不当暴露内网地址,用户密码等敏感配置信息
二丶Shiro框架反序列化漏洞
shiro框架介绍
shiro是Apache开发的一款强大且易用的Java安全框架,能够用于身份验证、授权、加密和会话管理。只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞。Shiro拥有易于理解的API,您可以快速、轻松地获得任何应用程序——从最小的移动应用程序到最大的网络和企业应用程序。
Shiro漏洞原理
前提条件:获得该网站ASE加密密钥
原理:shiro框架的cookie是通过序列号->ASE加密->base64编码形成的,通过ASE加密构造恶意cookie,最后实现原理是cookie被base64解码,ASE解密,最后反序列化,得到反序列化漏洞。
注:shiro1.2.4之前版本中使用的是硬编码,AES加密的密钥默认在代码里。其默认密钥的base64编码后的值 kPH+bIxk5D2deZiIxcaaaA==。现在高版本为了解决硬编码是每次生成一个密钥进行加密,而很多开发者是自定义密钥加密,可以通过信息收集得到自定义密钥。
三丶Tomcat任意文件写入(CVE-2017-12615)
漏洞原理
当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行。
影响范围
Apache Tomcat 7.0.0 - 7.0.81
注:具体操作方法可以搜索该漏洞编号观看
总结
这里主要是写一些看到的java框架漏洞,用以记录,加深印象,框架漏洞非常的多,主要是对各框架能区分出类型并且知道版本,去各大平台搜索历史漏洞,尝试复现,可能就会因为配置错误等原因挖到漏洞。这些java框架漏洞原理主要是观看各类文章总结的,用以个人学习记录。
标签:java,框架,spring,笔记,漏洞,应用程序,RCE,加密 From: https://blog.csdn.net/weixin_63560942/article/details/136964381