渗透测试之越权漏洞详解 水平越权 垂直越权 目录越权 SQL跨库查询越权 以及未授权漏洞 一篇文章说明白

目录

 什么是越权

越权漏洞形成的原因是:

越权常见分类

漏洞产生条件

越权细分类

  水平越权:

水平越权解释:

垂直越权:

垂直越权示例:

  解释:

修复建议

例如

越权漏洞易发生的点

1.基础参数

2.多阶段验证

3.基于参数的访问控制

4.链接隐藏

5.其他位置

          案例

目录越权:

SQL跨库查询:

04未授权访问漏洞

未授权访问漏洞汇总预览

案例


 什么是越权

  • 所谓越权

  • 就是绕过权限限制或者在权限限制不够严格的情况下去访问原来不应该访问到的资源。

  • 比如:

    • 目录越权、任意订单遍历的业务类越权等等

  • 如果使用

    • A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。

越权漏洞形成的原因是:

  • 后台使用了不合理的权限校验规则导致的

  • 一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时

    • 后台需要对当前用户的权限进行校验

    • 看其是否具备操作的权限,从而给出响应

    • 而如果校验的规则过于简单则容易出现越权漏洞

  • 因此:在在权限管理中应该遵守:

    • 1.使用最小权限原则对用户进行赋权;

    • 2.使用合理(严格)的权限校验规则;

    • 3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件

越权常见分类

  • 目录越权分为多种

    • 常见的有:

  • 目录权限设置不严格

  • 权限没有递归设置

  • web站点越权访问

  • 用户权限鉴权被绕过。

  • 也就是我能看到我账号权限的其它用户的权限

漏洞产生条件

  • 越权漏洞高于逻辑漏洞

    • 逻辑漏洞就是指攻击者利用业务的设计缺陷,获取敏感信息或破坏业务的完整性。

    • 一般出现在密码修改、越权访问、密码找回、交易支付金额用户登录等功能

  • 是由于权限校验的逻辑不够严谨导致的。

  • 每个应用系统其用户对应的权限是根据其用户功能划分的

  • 而每个企业的业务又都是不一样的

  • 因此越权漏洞很难通过扫描工具发现出来,往往需要手动进行测试。

越权细分类

  水平越权:

水平越权解释:

  • A用户和B用户属于同一级别用户

    • 但各自不能操作对方个人信息。

  • A用户如果越权操作B用户的个人信息的情况称之为平行越权操作。

    • 在网址上修改其它用户的用户名 同权限用户。

  • 在当前已登陆的lucy的个人信息页面
    修改url里面的username, 改为lili的用户名
    如果可以登陆成功查看lili的信息, 说明这是一种越权行为
    我们需要在源代码中添加一段判断的get请求是否来自于lucy即当前登录的用户的代码, 来拒绝越权的尝试。
    

垂直越权:

  • A用户权限高于B用户

    • B用户越权操作A用户的权限的情况称为垂直越权

  • 只要用户执行了高于上一级用户的权限

    • 则就是垂直越权。

  • 普通用户执行了超级管理员的权限

    • 这就叫垂直越权。

  • 也就是我已a用户登录进去 但是a用户知道删除的网址是多说,然后a用户就执行了这个网址,用户被删除了,则说明a用户执行了超级管理员的权限,我们称之为垂直越权。
  • 用普通用户的身份进行超级管理员的操作,如果操作成功,即可说明后台存在垂直越权的漏洞。

    • 通过burp抓包拦截超级管理员登陆的数据包

    • 然后将其登录态的cookie

      • 【指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理】

  • 代替普通用户登录态中的数据包中的cookie,可以操作成功

    • 即进行了一次垂直越权查看后台源码可发现

    • 源码中只有判断超级管理员是否登录的代码

      • 应该添加一段判断当前用户登陆的权限

      • 判断用户级别是否为超级管理员的代码。

垂直越权示例:
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2015-0122573
  1. 用户的权限控制是有依据的 cookie sessionid 存放着响应依据

  2. 替换session id 普通用户和超级管理员用户的sessionid

  3. Uid sid

  解释:

  1. 普通用户 管理员账户

  2. 登录后分辨常看用户登录后响应的数据有什么区别来搞越权漏洞。

修复建议

  • 越权访问漏洞产生的主要原因是因为没有对用户的身份做判断和控制

  • 防护这种漏洞是
  • 可以使用session【当访问服务器某个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做`SESSION】来控制
  • 例如

    • 用户在登录成功后, 将用户名写入session中

    • 当用户查看个人信息时,通过session中取出username

    • 而不是从GET或者POST中取到username

    • 那么此时的username就不会被篡改了

越权漏洞易发生的点

1.基础参数

  • 通过修改一下参数就可以产生水平越权

    • 例如查看用户信息页面 URL 后加上自己的 id 便可查看

    • 当修改为他人的id号时会返回他人的信息

    • 再比如cookie中的参数就作为用户的凭据,修改这个凭据便可以其他用户身份通过验证。

2.多阶段验证

  • 多阶段功能是一个功能有多个阶段的实现。

    • 例如修改密码,可能第一步是验证用户身份信息,号码验证码类的。

    • 当验证成功后,跳到第二步,输入新密码

    • 很多程序会在这一步不再验证用户身份

    • 导致恶意攻击者抓包直接修改参数值

    • 导致可修改任意用户密码

3.基于参数的访问控制

  • 有的程序会在参数里面进行权限认证。

    • 如:www.xxx.com/uid=test&admin=0

    • 把0改为1就有了admin权限。

4.链接隐藏

  • 有的程序会把页面独立,让爬虫爬取不到

    • 但是可以使用扫目录的方式扫到url,如果此时页面不做权限认证【漏扫描工具 考研字典的强大】

    • 就可直接访问到功能点,或者只是前端跳转

    • 可以使用burp抓回包,然后删除js代码绕过

5.其他位置

  • 越权可能存在的地方:增、删、改、查、详情、导出等功能

    • 当有这些功能的时候提高重视

    • 在url、post data、cookie处寻找是否有鉴权参数

    • 最关键的点就是定位鉴权参数,然后替换为其他账户鉴权参数的方法来发现越权漏洞。

案例

  • 通过修改GET传参来越权。案例
    • https://cn-sec.com/archives/2572.html
  • 修改POST传参进行越权。 案例
    • https://cn-sec.com/archives/1682.html
  • 修改cookie传参进行越权。案例
    • https://cn-sec.com/archives/6421.html
  • 抓取传参可以在浏览器、APP、应用程序exe 案例
    • https://cn-sec.com/archives/5930.html
  • 未授权访问。严格意义上而言这个不属于越权漏洞,但是在日常测试中常常会遇见。只要输入正确的网址就可以直接访问,例如/admin默认是登录,登录后跳转到user.php,然后你直接访问user.php,发现你直接有后台权限。 案例
    • https://cn-sec.com/archives/5930.html
  • 业务逻辑绕过。 案例
    • https://cn-sec.com/archives/17524.html

目录越权:

  • User 权限没做限制 所以可以访问任意文件,那么配置这个用户访问特定的目录那么就可以设定好,防止目录越权。

    • 运维人员使用了同一个web服务应用程序(很多安全人员管这个叫做中间件)用户而造成目录越权

    • 同时中间件用户权限过高也可以造成目录越权。

  • 这个和我们刚才说的旁注产生的原因一样。

    • 很多运维人员都喜欢用root用户来搭建web服务

    • 这种情况下如果别人拉取到webshell

    • 那么就很容易控制了你的服务器。

SQL跨库查询:

  • 也就是跨库查询权限漏洞。

  • ​​​​​也就是mysql数据库权限分配不当

  • 对用户所能访问的目录进行限制如果没有限制或者限制不当就会出现目录越权的问题。

  • 其实主要也是因为运维人员或者dba的安全意识不够导致的

  • 说白了就是权限分配不当的问题导致的。

  • 跨库查询是指由于权限设置不严格,导致普通帐号被授予过高的权限,从而使得其可以对其他的数据库进行操作。

04未授权访问漏洞

  • 未授权访问漏洞是一个在企业内部非常常见的问题
  • 未授权访问可以理解为需要安全配置或权限认证的地址
  • 授权页面存在缺陷
  • 导致其他用户可以直接访问
  • 从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。

未授权访问漏洞汇总预览

1 、FTP 未授权访问(21)

2 、LDAP 未授权访问(389)

3 、Rsync 未授权访问(873)

4 、ZooKeeper 未授权访问(2181)

5 、Docker 未授权访问(2375)

6 、Docker Registry未授权(5000)

7 、Kibana 未授权访问(5601)

8 、VNC 未授权访问(5900、5901)

9 、CouchDB 未授权访问(5984)  15

10 、Apache Spark 未授权访问(6066、8081、8082)

11 、Redis 未授权访问(6379)

12 、Weblogic 未授权访问(7001)

13 、HadoopYARN 未授权访问(8088)

14 、JBoss 未授权访问(8080)

15 、Jenkins 未授权访问(8080)

16 、Kubernetes Api Server 未授权(8080、10250)

17 、Active MQ 未授权访问(8161)

18 、Jupyter Notebook 未授权访问(8888)

19 、Elasticsearch 未授权访问(9200、9300)

20 、Zabbix 未授权访问(10051)

21 、Memcached 未授权访问(11211)

22 、RabbitMQ 未授权访问(15672、15692、25672)

23 、MongoDB 未授权访问(27017)

24 、NFS 未授权访问(2049、20048)

25 、Dubbo 未授权访问(28096)

26 、Druid 未授权访问

27 、Solr 未授权访问

28 、SpringBoot Actuator 未授权访问

29 、SwaggerUI未授权访问漏洞

30 、Harbor未授权添加管理员漏洞

31 、Windows ipc共享未授权访问漏洞

32 、宝塔phpmyadmin未授权访问

33 、WordPress未授权访问漏洞

34 、Atlassian Crowd 未授权访问

35 、PHP-FPM Fastcgi未授权访问漏洞

36 、uWSGI未授权访问漏洞

37 、Kong未授权访问漏洞(CVE-2020-11710)

案例

http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2016-0228007

奥鹏教育某处未授权访问可影响大量学生信息 | wooyun-2016-0228007| WooYun.org

奥鹏教育某处未授权访问可影响大量学生信息 | wooyun-2016-0228007| WooYun.org

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ANSYS Fluent学习笔记(七)求解器四部分

16.亚松弛因子 Controls面板里面设置,它能够稳定计算的过程。如果采用常规的迭代算法可能结果就会发生振荡的情况。采用亚松驰因子可以有助于残差的稳定。 他的取值范围是0-1,0代表没有亚松驰,1表示物理量变化很快,一般情况下取…

ComfyUI安装

项目地址:https://github.xyz/comfyanonymous/ComfyUI 下载地址(我下载时的最新版时v0.3.10):https://github.xyz/comfyanonymous/ComfyUI/releases/tag/v0.3.10 加速下载地址:https://bgithub.xyz/comfyanonymous/ComfyUI/releases/tag/v0…

《C++11》静态断言(Static Assert)的使用与优势

C11引入了许多新特性,其中之一就是静态断言(Static Assert)。这是一种在编译时期进行断言的机制,它可以帮助我们在编译阶段就发现错误,而不是等到运行时才发现。这样可以大大提高代码的质量和稳定性。本文将详细介绍静…

cv::moments

1、 代表所有像素值之和。 2、 代表所有像素值乘以该位置处的x坐标,然后再求和。 3、 代表所有像素值乘以该位置处的y坐标,然后再求和。 4、 5、

JavaScript-正则表达式方法(RegExp)

RegExp 对象用于将文本与一个模式匹配。 有两种方法可以创建一个 RegExp 对象:一种是字面量,另一种是构造函数。 字面量由斜杠 (/) 包围而不是引号包围。 构造函数的字符串参数由引号而不是斜杠包围。 new RegExp(pattern[, flags])一.符集合 1.选择…

Apache搭建https服务器

Apache搭建https服务器 REF: 使用OpenSSL自建一个HTTPS服务

从Arrays源码学习定义工具类

背景 在日常编码中,一个比较好的实践是:我们把一些业务无关的、可复用的一些通用逻辑,封装成工具类、甚至jar包。这样一方面方便通用代码抽取、代码复用,同时也隔离经常变动的业务代码和不变的通用代码。那如何定义好一个工具类呢…

w~Transformer~合集11

我自己的原文哦~ https://blog.51cto.com/whaosoft/12472192 #LightSeq 最高加速9倍!字节跳动开源8比特混合精度Transformer引擎,近年来,Transformer 已经成为了 NLP 和 CV 等领域的主流模型,但庞大的模型参数限制了它的高效训练和推理。…

【Rust自学】13.1. 闭包 Pt.1:什么是闭包、如何使用闭包

13.1.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发,而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中,我们会讨论 Rust 的一…

Linux服务器配置onnxruntime-gpu

本文实现 onnxruntime-gpu 不依赖于服务器主机上 cuda 和 cudnn,仅使用虚拟环境中的 cuda 依赖包实现 onnx GPU 推理加速的安装教程。为了适配推理节点,因此我们仅在 base 下配置环境,不需要重新创建新的虚拟环境。 升级 pip pip install -…

近红外简单ROI分析matlab(NIRS_SPM)

本次笔记主要想验证上篇近红外分析是否正确,因为叠加平均有不同的计算方法,一种是直接将每个通道的5分钟实时长单独进行叠加平均,另一种是将通道划分为1分钟的片段,将感兴趣的通道数据进行对应叠加平均,得到一个总平均…

G1原理—5.G1垃圾回收过程之Mixed GC

大纲 1.Mixed GC混合回收是什么 2.YGC可作为Mixed GC的初始标记阶段 3.Mixed GC并发标记算法详解(一) 4.Mixed GC并发标记算法详解(二) 5.Mixed GC并发标记算法详解(三) 6.并发标记的三色标记法 7.三色标记法如何解决错标漏标问题 8.SATB如何解决错标漏标问题 9.重新梳…

npm发布工具包+使用

1.初始化package包 npm init -y {"name": "common-cjs-tools","version": "1.0.0","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" &&…

C# Web 开发:ASP.NET Core 从入门到实战

ASP.NET Core 是一个开源、跨平台、高性能的 Web 框架,适用于构建现代 Web 应用和 API。它不仅支持传统的 Web 应用开发,还支持 RESTful API、实时应用、微服务等架构。与传统的 ASP.NET 框架相比,ASP.NET Core 更加轻量级、模块化&#xff0…

http转化为https生成自签名证书

背景 项目开发阶段前后交互采用http协议,演示环境采用htttps协议 ,此处为个人demo案例 组件 后端:springBoot 前端:vue web 服务:tomcat 部署环境:linux 生成自签名证书 创建目录 存储证书位置 # mkdir -p…

【初阶数据结构】序列系统重构:顺序表

文章目录 1.线性表2.顺序表2.1 概念及结构2.1.1 静态顺序表2.2.2 动态顺序表 2.2 接口实现2.2.1 顺序表打印2.2.2 顺序表初始化2.2.3 顺序表销毁2.2.4 顺序表容量检查2.2.5 顺序表尾插2.2.6 顺序表头插2.2.7 顺序表尾删2.2.8 顺序表头删2.2.9 顺序表在pos位置插入x2.2.10 顺序表…

AI 编程工具—Cursor进阶使用 阅读开源项目

AI 编程工具—Cursor进阶使用 阅读开源项目 首先我们打开一个最近很火的项目browser-use ,直接从github 上克隆即可 索引整个代码库 这里我们使用@Codebase 这个选项会索引这个代码库,然后我们再选上这个项目的README.md 文件开始提问 @Codebase @README.md 这个项目是用…

MyBatis-XML映射配置

引言 在 Mybatis 中,既可以通过注解配置 SQL 语句,也可以通过 XML 配置文件配置 SQL 语句。默认规则: 1. XML 映射文件的名称与 Mapper 接口名称一致,并且将 XML 映射文件和 Mapper 接口放置在相同包下 (同包同名&…

MS9913N血糖测试 AFE 芯片

MS9913N 是一款血糖仪模拟前端 (AFE) 测量电路,内部集成 了 16bit 高性能 Σ-Δ ADC 、高精度运算放大器、低阻抗开关、高精 度基准电压产生电路和血糖测试 AC 信号调理电路,接口采用 I 2 C 通信协议,使外围器件更少,操…

C语言:-三子棋游戏代码:分支-循环-数组-函数集合

思路分析: 1、写菜单 2、菜单之后进入游戏的操作 3、写函数 实现游戏 3.1、初始化棋盘函数,使数组元素都为空格 3.2、打印棋盘 棋盘的大概样子 3.3、玩家出棋 3.3.1、限制玩家要下的坐标位置 3.3.2、判断玩家要下的位置是否由棋子 3.4、电脑出棋 3.4.1、…