shiro权限绕过漏洞分析

​ 之前协助渗透做审计的时候遇到了shiro版本不高,当时想到了shiro的权限绕过漏洞,但是在网上试了好几个payload都没成功 ,现在空下来了分析下shiro权限绕过的原理及触发条件。

为什么会导致权限绕过?

​ 首先观察一下shiro权限绕过的payload为/xx/..;/,并且在官方也强调了是和spring配合使用时出现的问题,不难判断出出现这个问题的原因在于shiro和spring处理url的不一致导致的,而spring在请求处理过程中会去除/./和/;xxxasxdasd/中的内容,通过这种方式变形的url可能和shiro配置的filter不一致,导致了权限绕过。

致远Ajax.do权限绕过分析

​ 之前致远爆了关于ajax.do的权限绕过漏洞,虽然看网上和官方都说是由于shiro的权限认证绕过导致的,但是我并没有在代码中找到致远使用shiro进行权限认证的相关代码,所以想深入分析下致远会产生权限绕过漏洞。还是以解决问题的方式来分析这个漏洞吧。

fastjson反序列化漏洞分析

​ 最近做项目遇到存在漏洞的fastjson,虽然最终还是打下来了,但是要深入利用如果不了解原理就比较难受,因此专门花时间了解下fastjson反序列化漏洞形成的原理。我不想长篇大论的去写很多关于fastjson的问题,主要是解决我这个没接触过fastjson漏洞的一些疑惑。

有没有特殊编码可以绕WAF?

​ 之前做渗透,当json数据包中出现"@type":"com.sun.rowset.JdbcRowSetImpl"数据包就会被拦截,因此分析下有没有替代方案可以绕过WAF。

​ 在com.alibaba.fastjson.parser.DefaultJSONParser#parseObject(java.util.Map, java.lang.Object)中会对JSON进行词法解析。当解析到第一个内容是,时,会忽略后面的,和其他空白字符。

从JNDI注入到内存马植入

​ 某次团队的小伙伴给了个系统需要后台getshell,经过分析这个系统不解析jsp,但在后台发现了个反射调用任意类的任意方法的功能点,想到通过JNDI注入利用,下面着重分析如何通过JNDI注入种植内存马。

冰蝎客户端改写

​ 漏洞利用后一般需要拿shell,如果shell不免杀可能容易触发目标的防护,甚至去溯源捕获我们的0day,所以做一个免杀的shell是有必要的,今天刚好看到一种新型Java一句话木马的实现文章,可以通过ScriptEngine来执行我们的代码,由于这种方式执行代码的语法和之前jsp马的实现有些不同,所以可以通过这种方式改写shell来实现免杀。

​ 在要通过ScriptEngine改写shell之前,首先我们要了解冰蝎shell做了什么?

jetty文件下载漏洞分析

前言

​ 前段时间在分析Jetty漏洞时无意捡了个CVE,下面是当时分析该漏洞并挖掘到CVE的记录。

CVE-2021-28164

​ 该漏洞影响9.4.37.v202102199.4.38.v20210224版本,攻击者可通过/%2e/WEB-INF/绕过WEB-INF下文件的访问限制,读取WEB-INF下的文件内容。目前该漏洞我仅在9.4.38.v20210224复现成功。

Vcenter漏洞分析

​ 前阵子vcenter爆出了CVE-2021-21985漏洞,师傅们对这个漏洞提出了多种不同的利用方案,都非常的精彩,因此我搭建好了vcenter的环境,并对师傅们公开的利用方法进行了分析。

环境搭建

​ 本来打算通过OVA来安装,试了7.0和6.5的版本,由于各种坑试了两天都没搭建成功,最后无奈在windows下进行安装,需要注意的是在SSO设置域名时,如果是在内网搭建的没有域名,改一下本地的hosts文件随便给个域名就可以了,最终选择6.7的版本进行安装。

某微RCE回显利用分析

​ 最近某微爆出RCE漏洞,本想着通过相对路径写入shell,但是不知是什么原因,在实际渗透中并没有成功,内存马这里也考虑了一下,但是由于这里的利用需要将class经过BCEL编码,由于无法将两个类进行BCEL编码,所以只能放弃了种内存马的想法,那目前最稳妥的方法就是获得命令执行的结果,让攻击者根据自己的需求去完成后续的利用。

Spring Boot Fat Jar 写文件getshell技术分析

前言

​ 之前在审计的过程中发现,很多JAVA开发的网站经常使用springboot,而springboot又是可以独立于tomcat部署web项目的,而且在不做特殊配置的情况下,也并不解析jsp文件,当时也在想,如果在渗透的过程中发现了一个任意文件上传漏洞,并且目标网站没有内置jsp或者jspx的解析引擎,我该如何getshell?

​ 以我目前的知识积累来看,在linux下且高权限的情况下,可以通过写入计划任务反弹shell。在windows下高权下可以通过写自启动的方式getshell,但是使用这些方式显然要求都比较高,一方面是需要高权限,另一方面在windows下可能有些上传点并不支持上传exe或者dll,也需要等到程序下次启动时才能上线,但是对于服务器来讲,可能管理员很久也不上来操作,这显然也是不行的。后来也想过替换jar包的方式getshell,但想到jar在运行期间替换也是不可行的。最近刚好看到Spring Boot Fat Jar 写文件漏洞到稳定 RCE 的探索,作者通过分析JDK中自带且在运行期间默认没有加载的JAR完成了getshell的操作,我本着学习的态度写下了这个文章。