逻辑越权漏洞测试方法和未授权访问

逻辑越权漏洞测试方法和未授权访问

逻辑越权有两种,一种是垂直越权,一种是水平越权,关系如下图:

1698562160618如果你是用户1,通过修改数据包之类的操作,获取了用户2的个人信息,或者做到了用户2的操作,比如说你本是用户1却使用了用户2的账号发表了一个评论,这本该是用户2才能做的事,这就是水平越权的意思。

如果你是用户1,通过修改数据包的操作,获取了管理员的信息,或者做到了只有管理员才能做到的事情,比如禁言谁,删除其它用户的作品等,这就是垂直越权的意思。

未授权访问: 比如说你没有账户,而你想访问的资源是需要用户登录注册才能看到的,可你通过修改数据包或者其它操作,获取到了这些资源,这算是未授权。

未授权访问和垂直越权访问的区别:

未授权访问是指用户没有通过身份验证访问资源的情况,而垂直越权访问是指已经通过身份验证,但试图越权访问资源的情况。

如果不好区分的话,那就直接叫未授权吧。

在测试过程中,如果你的目标量不多那就不需要用工具去测试这些逻辑越权的问题,手工测试更加方便,如果你的目标很大,那就只好用工具了。我列出几个,如有需要具体用法自行搜索

1、检测插件:

https://github.com/smxiazi/xia_Yue

2、检测项目:

https://github.com/ztosec/secscan-authcheck

https://github.com/y1nglamore/IDOR_detect_tool

测试逻辑越权漏洞和未授权访问漏洞的方法:

  1. 抓取数据包,观察数据包中跟身份凭据相关的参数,比如username,ID值等;如果对方是加密过后发送的,那么你还需要在前端JS代码中逆向出对方的加密算法,如果没加密那就直接试着把id这种类型参数的值改成其它的,用枚举的方法看看会不会响应意料之外的东西。​

    怎么逆向出网站JS加密算法我前面也讲过可以看看,以及如果目标不允许调试怎么办:

    js逆向·找到登录时目标网站的加密算法的几种方式-CSDN博客

    JS反调试绕过&JS代码混淆&JSFUCK编码_jsfuck解密-CSDN博客

    1698565133011

    比如上面这张数据库里的表就很能说明这个问题,如果参数名叫admin_ok的值为1的话,usertype值为3的话,就说明这是一个管理员。那我们在数据包里抓取下来把原本的普通用户的对应值修改成这个,那就是逻辑越权了。当然大多数实际情况验证的肯定比这个强,我只是举个例子说明。

  2. 如果对方数据包中带有Token,那要么直接不管继续测试,要么把Token的值删除掉,要么连参数名连带参数值都删除掉,这么测就是了。

  3. 还可以用工具,在前端js代码里,去发现更多的目标网站地址,试着去访问,如果那个地址原本是需要登录或者原本是需要管理员才能访问的,你发现了,你访问到了。那就是一个未授权访问漏洞了。前端JS代码可能会用webpack打包,那我们也可以用类似工具去发现比如:PackerFuzzer这个工具,详细教程:

    Packer Fuzzer-针对前端打包工具构造的网站漏洞扫描工具 - 🔰雨苁ℒ🔰 (ddosi.org)

  4. 除了在js里发现更多子目录,还可以用目录扫描,爬虫的方式去发现,然后都去试着访问一下,看看是否有未授权的页面可以访问到。如果嫌结果太多,就把发现的URL整理到字典里去用BP批量跑,观察响应码,200或许是可以正常访问的,403可能就是提示页面不存在,或者你没有权限访问的问题。怎么用BP工具批量访问URL呢?详情如下:

    把请求的地址设置为一个变量,然后加载字典就行了。

    1698567453352BP的站点地图里也会显示分析出来的目标网站的目录结构,可以关注一下:

    1698567612436

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值