CVE-2020-1957 漏洞复现

先声明一下,免杀还是会更的,不过中间可能会穿插一下渗透的内容!!!

踩坑点:

在一开始翻阅了CSDN之后,发现不同文章之间存在出入,于是最后去了CVE的官方文档,和参考一些国外的底层代码审计人员的报告,发现原理和CSDN上的部分文章存在出入,但是POC是相同的。最后在参考国外文章之后修正了报告

CVE-2020-1957原理:

在Spring和Shiro(版本<1.5.2)搭配使用的时候会产生权限绕过漏洞。

在黑客传入的POC : https://........./test/..;/admin/ 中,它的框架检验代码如下:

  1. 先通过这段代码,在uri.indexOf(“;”)中,将截断 ;后面的请求。
  2. 然后通过normalize()这个函数,对反斜线进行替换,///.//../ 都替换为 /
  3. getPathWithinApplication()函数的处理,最终Shiro 需要校验的URL 就是 /test/..

然后传入到getChain()函数中进行校验

其中Shiro组件只对/admin/** 这样的path进行了匹配,其他都会放行。

所以我们最原始的请求  https://........./test/..;/admin/  就成功进入到了SpringBoot的校验中(这也是整个漏洞的产生原理

然后SpringBoot就会对这个URL进行检查

又因为SpringBoot的getPathWithinServletMapping()函数通常是返回的Servletpath

所以就直接返回了/admin/ 这样的URL 至此,就饶过了身份验证。

漏洞复现

本次复现环境使用的是Vulhub靶场! 首先对登录界面进行抓包。

这时候我们直接去访问/Admin 这个界面是肯定会有拦截的(因为被Shrio的过滤器匹配到了)

302跟进之后发现,他又跳转到了我们的登录界面

然后我们用我们的POC去访问,成功绕过身份验证。

检测工具:

由于此漏洞并没有特别大的影响,在网上并没有搜索到对应的工具。

本人尝试了使用渊龙SEC曾哥spring工具,以及其他Shiro工具也并未能检测出漏洞。

所以只能收录为一个POC,在后续的武器开发之中能加入这一POC检测。

修复建议:

将Shiro版本进行升级。在新版本的Shiro中GetRequestURL是由contextPath()+ servletPath()+ pathinfo() 这三个函数组合而成,当黑客传入https://........./test/..;/admin/ POC之后,在Shiro的过滤之下,返回的路径将会变成/admin/成功匹配,不会放行,成功防止了权限的绕过。

参考文章:

Shiro权限绕过漏洞分析(CVE-2020-1957) - FreeBuf网络安全行业门户

https://www.cnblogs.com/backlion/p/14055274.html

shiro权限绕过漏洞分析(cve-2020-1957) | Spoock

CVE-2020-9484是Apache Tomcat容器中的一种身份验证绕过漏洞。要复现漏洞,我们需要满足以下条件: 1. 安装Apache Tomcat服务器:首先需要在本地或远程环境中安装Apache Tomcat服务器。确保Tomcat版本为9.0.0.M1至9.0.0.30。 2. 配置Tomcat服务器:在Tomcat的配置文件中(通常是server.xml),需要启用HTTP Connector属性中的restEnabled参数。该参数默认为false,我们需要将其设置为true。 3. 修改用户配置文件:在Tomcat配置文件的users节点中,添加一个或多个用户。为了复现漏洞,我们需要至少添加一个用户名为test的用户及其密码。 4. 启动Tomcat服务器:启动Tomcat服务器,确保它在本地或远程环境中运行。 5. 发起请求攻击:使用任何Web请求工具(如curl、Postman等),构造以下HTTP请求: POST /servlets-examples/servlet/RequestParamExample HTTP/1.1 Host: [Tomcat服务器IP地址]:[Tomcat服务器端口号] Content-Length: [content-length] Transfer-Encoding: [transfer-encoding] attName=%25%7B%25+%27test%27%2e%25+%27class%27%7d 其中,[Tomcat服务器IP地址]替换为Tomcat服务器的实际IP地址,[Tomcat服务器端口号]替换为Tomcat服务器的实际端口号,[content-length]和[transfer-encoding]分别为请求体的长度和编码方式。 6. 漏洞验证:如果成功复现漏洞,我们将获得类似以下的服务器响应: HTTP/1.1 200 OK [其他响应头信息] Content-Type: text/html;charset=UTF-8 [其他响应体信息] ${%27test%27.class} 如果响应体中包含"${'test'.class}"的引用,则漏洞已成功复现。这说明攻击者绕过了身份验证,并成功执行了恶意代码。 需要注意的是,CVE-2020-9484漏洞可能会导致未经授权的远程代码执行,攻击者可以利用此漏洞来执行任意代码,可能导致服务器受到严重影响。在验证漏洞后,建议尽快升级Tomcat服务器,安装相应的补丁或增加其他安全措施,以避免潜在的安全威胁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值