目录
#检测类-工具项目-Authz&Secscan-Authcheck
#知识点:
1、水平越权-同级用户权限共享
2、垂直越权-低高用户权限共享
3、访问控制-验证丢失&取消验证
4、脆弱验证-Cookie&Token&Jwt等
#前置知识:
1、逻辑越权原理-
-水平越权:用户信息获取时未对用户与ID比较判断直接查询等
-垂直越权:数据库中用户类型编号接受篡改或高权限操作未验证等
水平越权和垂直越权可以用下面这张图来接受,垂直越权的危害相比水平越权是更大的。
2、访问控制原理-
-验证丢失:未包含引用验证代码文件等
-取消验证:支持空口令,匿名,白名单等
验证丢失就是说,这里有验证但是没有使用,如同有门但是开着的,跟没有门是一样的。
取消验证和它差不多,但是结果不太一样,这个就是有验证,但是因为更改了一些配置问题,就不要需要验证了,就比如白名单。修改白名单之后直接不用验证就可以访问了。
如果有访问控制这方面的安全问题的话,就好比一个网站的后台需要登录才可以看到后台内容,直接访问的话就需要先登录后台,有这个安全问题就不要登录就可以看到。
3、脆弱验证原理-
-Cookie&Token&Jwt:不安全的验证逻辑等
我们现在已经学了四种验证身份的东西了,分别是cookie、session、token、jwt。这些都涉及到了脆弱验证,就像cookie,我们是不是可以盗取,如果它比较简单的话,我们是不是可以伪造,jwt我们也可以爆破密钥,利用kid以及空加密。所以这些都是验证性不强导致的绕过。
案例讲解:
权限-水平越权-YXCMS-检测数据比对弱
只检测用户和ID对应关系,没检测当前操作用户是不是当前用户
首先我们在本地搭建好网站yxcms,我们先注册两个会员账号,等会好验证水平越权。两个账户分别为xiaopei001和xiaopei002,我们登录第一个账户xiaopei001,点击会员中心的资料完善去修改内容,没有这个页面的话就直接访问上面的地址。
输入好内容之后就抓包,把xiaopei001改成xiaopei002,把其他信息也改一下,放出去之后会发现xiaopei002的信息被改了,这就是水平越权。
黑盒的话就是不断修改用户名或则对应的id值以及编号等等来尝试对另外一个用户进行操作的,那这里就有水平越权这个漏洞。
白盒的话我们直接看源码,直接搜索nickname,因为刚才水平越权就是根据这个nickname和id去操作的。
这里果然是把这个nickname当成了一个变量,所以才会有水平越权。修复的方法也很简单就是把依据定死,比如这里是把nickname当成依据去修改的内容。那就把它定死,做的操作只能在xiaopei001上面修改,就差不多了。
总结:水平越权就是没有控制好该固定的值
#权限-垂直越权-MINICMS-权限操作无验证
后台数据包访问先执行后判断登录等于无效
在本地搭建好网站之后先进入后台发布一篇文章,发布完之后,把回收这个按钮的链接复制到其他浏览器,因为要确保没有登录后台。
在其他浏览器直接访问这个链接之后提示让登录,但此时会发现这个文章已经删除了。
这就是数据包没有经过验证,直接就触发了。这里有两种情况,一种是没有验证,一种是有验证但逻辑搞错了。这里是第二种,相当于先执行了删除的操作然后才让登录。
实战中不是说要先登录到后台才能拿到越权的url,这个是分情况的,如果知道cms的话直接下载到本地搭建去构造,不知道的话就通过一些信息搜集去构造。但越权不是说就是删除,只要是低权限能干只有高权限能干的事都是越权,就比如看到后台页面。
我们白盒审计之后也是可以发现执行删除的操作在登录验证的前面,所以才会有垂直越权。但不是说登录在前就没有了,这个要看代码逻辑,如果说是弄个if语句,登录不成功就不执行这个删除操作,那是可以的,如果说只是先后的话,代码还是会从上到下执行完,还是会执行删除操作的。
#未授权-访问控制-XHCMS-代码未引用验证
而第一种没有验证是我们之前讲过的,因为这个登录验证往往都是封装成一个文件,然后在需要进行登录验证的地方去包含。但网站下的文件大大小小有很多,如果有个文件没有包含这个登录文件的话,那这里就存在这个未授权访问。未授权和越权是差不多的,结果都是一样的,只不过形成的原理不太一样。
拿这个xhcms做个案例演示,这里checklogin.php是登录验证文件,在需要登录验证的文件都包含有它,但如果某一个没有包含,就可未授权访问。
比如这里随便找一个admin目录下的问价,把登录验证文件去掉之后,不用登录就可以直接访问。
这里我特意换了个浏览器去访问,结果还是可以直接登录。加上登录验证文件之后再访问就需要登录了。
#未授权-脆弱机制-XHCMS-Cookie脆弱验证
出现这类安全问题的话,有可能是没有引用登陆验证文件,有可能引用了但是逻辑顺序搞错了,导致先执行后验证。最后一种就是有验证,但是验证比较脆弱,缩编就可以绕过了。这要搞清楚。
这里就是cookie的脆弱验证,就不用本地的xhcms做演示了,直接去fofa上面找真实搭建好多xhcms的网站做案例。我们直接尝试登录到后台,然后抓包。
直接在fofa搜这个即可(app="熊海内容管理系统(SEACMS)")
然后加上cookie为user等于一个不为空的值即可绕过验证。
放包之后就会发现直接进入到后台了。这就是脆弱验证,虽然有验证但是很好绕过。
#弱机制-空口令机制-Redis&Weblogic弱机制
首先打开vulfocus这个靶场,然后找到这个redis的未授权访问这个漏洞靶场这里,
启动之后我们可以直接用本地的redis去连接,软件放到资源库了,直接安装即可。
进入软件之后点击左下角的连接,输入目标ip和端口,如果存在没有开启认证的情况下,就可直接连接,然后进行后续的提权等相关操作,这个再讲服务攻防的时候会说。
可以看到直接就连接了上去,这是因为这里没有开启认证导致的未授权访问。说这个主要是告诉你未授权在一些框架中间件里面也有发生
下面我们对靶场中weblogic这个框架的未授权访问的漏洞做个讲解,直接打开即可。
打开之后就是个报错信息
但是当我们输入payload之后直接就进入到了后台,这个也是框架的未授权访问。
payload:/console/css/%252e%252e%252fconsole.portal
#检测类-工具项目-Authz&Secscan-Authcheck
这里介绍两个工具,都是检测未授权访问的。第一个authz是burp里面的插件,按照下面的方法可找到安装。
安装完成之后就会出现这个模块在最右边,然后把想要进行检测的数据包右键放过去即可。
然后通过修改cookie,来访问数据包,那么就类比了不同人访问,看返回的结果是否有差异来判断是否存在未授权访文。如果数据包原来存在cookie需要删了才可以加上。
但小迪说这个工具没啥用,还不如自己抓包修改,没有下面那个工具好用,但是下面那个工具不好安装。
Secscan-Authcheck这个工具就是分别在burp和浏览器安装两个插件,然后把浏览器的流量全部送到工具那里,在工具那里注册有两个账户,一个管理员,一个普通用户,然后去请求这些数据包,看返回的情况去对比,然后判断是否存在未授权访问这个漏洞。小迪经常用这个工具来测越权漏洞,但是不好搭建。上面那个小迪一次没用过,讲解也是为了不让别人说基础。
安装过程:GitHub - ztosec/secscan-authcheck: 越权检测工具
secscan-authcheck(越权漏洞检测工具) 安装总结_越权测试工具_Asiaforest的博客-CSDN博客