Web攻防作业 | 越权访问漏洞全解析

文章来源 | MS08067 Web高级攻防第3期作业

本文作者:xiaobai05050505

越权访问漏洞

一、越权漏洞概述
1、概述

通常情况下,一个 Web 程序功能流程是登录 - 提交请求 - 验证权限 - 数据库查询 - 返回结果。在验证权限阶段逻辑不够缜密,便会导致越权。(常见的程序都会认为通过登录后即可验证用户的身份,从而不会做下一步验证,最后导致越权。)

2、分类

①、未授权访问:没有某个功能权限,通过越权操作,获取了某个功能权限;②、水平越权:本来只能操作自己的数据,比如增删改查,通过越权操作,能操作其他同等权限账号的数据。③、垂直越权:本来有个账号只有低权限,通过越权操作,获取了高权限。

3、原因

①、通过隐藏 URL实现验证权限:

  • 有些程序的管理页面只有管理员才会显示,普通用户无法看不到,程序开发人员利用 URL 实现访问控制。(但若URL 泄露或被恶意攻击者猜到后,这会导致普通用户访问导致出现越权攻击。)

②、直接对象引用实现验证权限:

  • 这种通过修改验证参数就可以模拟成其他用户进行访问。(例如查看用户信息页面 URL 后加上自己的 id 便可查看,当修改为他人的 ID 号时会返回他人的信息,便产生了水平越权。)

③、多阶段功能处疏忽验证权限:

  • 多阶段功能是一个功能由多个阶段来进行实现。(例如修改密码,可能第一步是验证用户身份信息,号码验证码类的。当验证成功后,跳到第二步,输入新密码,很多程序会在这一步不再验证用户身份,导致恶意攻击者抓包直接修改标识身份参数值,导致可修改其他用户密码。)

④、静态文件下载疏忽验证权限:

  • 很多网站的下载功能,一些被下载的静态文件,可能只有付费用户或会员可下载。(但当这些文件的 URL 地址泄露后,导致任何人可下载,如果知道 URL 命名规则,则会便利服务器的收费文档进行批量下载。)

⑤、平台验证权限配置错误:

  • 一些程序会通过控件来限制用户的访问。(例如后台地址,普通用户不属于管理员组,则不能访问。但当配置平台或配置控件错误时,就会出现越权访问。)

二、越权漏洞发现

思路:①、使用已登陆账户访问页面的URL让未登录用户直接访问,根据是否能访问判断是否由未授权访问 ②、使用普通账户标识信息去替换管理员账户标识,根据是否能进行访问判断是否有垂直越权漏洞 ③、使用普通账户标识信息去替换其他普通账户标识,根据是否能进行访问判断是否有水平越权漏洞

三、越权漏洞复现
1、metinfoV4.0越权漏洞复现

①、下载metinfoV4.0CMS源码进行网站搭建

  • 下载地址:https://www.metinfo.cn/upload/file/update/MetInfo4.0.zip

  • 其他版本下载地址:http://www.metinfo.cn/upload/file/update/MetInfox.x.x.zip(将x.x.x改成对应版本即可)

  • 源码:MetInfo4.0.zip

②、使用phpstudy搭建该网站 ③、web访问网站地址进入安装目录 ④、创建普通用户进行登录

8b9d0940a59a7e41f64f3aa18cb491ab.png(:/0fc4a4ce23144741bffd5808ae208522)

会员注册路径:http://127.0.0.1:8003/member/login.php?lang=cn

⑤、进入会员中心页面修改用户信息 ⑥、使用burp进行抓包判断参数含义并重放

5e1899947912fc057269715813f50716.png
在修改页面中使用useid进行区分用户,将useid修改未管理员的名字

⑦、使用修改后的密码登录管理员账户

63533861eeb32f997af728642346b8a1.png
后台登录路径:http://127.0.0.1:8003/admin/login/login.php
2、seacmsV7.0越权漏洞复现

①、下载metinfoV4.0CMS源码进行网站搭建

  • 源码:seacms7.0.rar

②、使用phpstudy搭建该网站 ③、web访问网站地址进入安装目录

1258262325c091df94af108bede7eac0.png

④、创建两个普通用户进行登录

会员注册路径:http://127.0.0.1:8004/reg.php

⑤、使用其中一个进入会员中心页面修改用户信息 ⑥、使用burp进行抓包判断参数含义并重放

8f07bf55050863f488315e64895e3679.png抓包分析:

  • 在普通用户与管理用户修改信息时,所有的cookie信息一致

  • 普通用户修改密码时,决定修改账号的为email参数,在修改信息时将email参数改为其他普通用户邮箱即可登陆其他账户

  • 管理员用户使用需改信息时,决定修改账号的为username参数,将该参数修改可直接修改其他管理员密码或者直接创建管理员用户

后台登陆路径:http://127.0.0.1:8004/847pno/login.php?gotopage=%2F847pno%2F  \\该路径为系统创建时自动生成

⑦、使用修改后的密码登录另一个账号

3、CouchDB(CVE-2017-12635)越权漏洞复现

概述: Apache CouchDB是一个开源数据库,专注于易用性和成为”完全拥抱web的数据库”。CouchDB 会默认会在 5984 端口开放 Restful 的 API 接口,用于数据库的管理功能。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。

  • 影响版本:小于 1.7.0 以及 小于 2.1.1

原理: Erlang和JavaScript,对JSON解析方式的不同,对于重复的键Erlang会存储两个值,而JavaScript只存储第二个值。

复现:①、使用docker搭建vulhub靶场 ②、进入靶场进行启动靶场

路径:vulhub/couchdb/CVE-2017-12635
命令:
docker-compose up -d  \\下载启用该靶场
docker ps  \\查看docker运行
docker-compose down -v  \\关闭该靶场

③、使用浏览器访问

6cbdbf196a4f1cadae49b063548f8c6f.png
访问路径:http://180.76.161.10:5984/

④、使用burp抓包流量并修改数据尝试创建用户

2b954dd3436ba206d18814e3cd33fa56.png
  • 该数据包创建一个用户,字段type的值对应用户,字段name的值代表账号,字段roles的值代表用户权限,字段password的值对应密码。

  • 创建admin权限用户提示只有admin才能进行设置。

⑤、利用漏洞进行创建用户

2ab9a9c4a30824816f309f1c34884e53.png
  • 字段roles的值代表用户权限,使用两个值进行设置,在JavaScript在检测时,检测的值为第二个[],代表无权限,系统判定为安全。在CouchDB的Erlang部分实现身份验证和授权时,检测的值为"roles": ["_admin"],代表为管理员权限,故创建具有管理员权限账户。

payload:
PUT /_users/org.couchdb.user:xiaobai HTTP/1.1
{
"type": "user",
"name": "xiaobai",
"roles": ["_admin"],
"roles": [],
"password": "xiaobai"

⑥、利用创建管理员登陆后台

2d180afe58968e96ae131bdafddb6754.png
后台登陆路径:http://180.76.161.10:5984/_utils/#login

—  实验室旗下直播培训课程  —

9c1c77046a319360b4ee36911f22268f.jpegef20f8154f952a6ba49d502a9011e0e9.png

b92df6b18a0c194329285b96d197e90f.jpeg

b6a5ebbe0f9fa462d339e9049dd821a7.jpeg

3d341235f002850fcaebde873a0bf26a.jpeg

dfa2aabf2aa57dd883b08660df4ae79b.jpeg

f206aa63face4a080c16e63b2c71161e.jpeg


来和20000+位同学加入MS08067一起学习吧!

bc65e31cad1d1b5f834554a3303c7650.gif

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值