文章来源 | MS08067 Web高级攻防第3期作业
本文作者:xiaobai05050505
通常情况下,一个 Web 程序功能流程是登录 - 提交请求 - 验证权限 - 数据库查询 - 返回结果。在验证权限阶段逻辑不够缜密,便会导致越权。(常见的程序都会认为通过登录后即可验证用户的身份,从而不会做下一步验证,最后导致越权。)
①、未授权访问:没有某个功能权限,通过越权操作,获取了某个功能权限;②、水平越权:本来只能操作自己的数据,比如增删改查,通过越权操作,能操作其他同等权限账号的数据。③、垂直越权:本来有个账号只有低权限,通过越权操作,获取了高权限。
①、通过隐藏 URL实现验证权限:
②、直接对象引用实现验证权限:
③、多阶段功能处疏忽验证权限:
④、静态文件下载疏忽验证权限:
⑤、平台验证权限配置错误:
思路:①、使用已登陆账户访问页面的URL让未登录用户直接访问,根据是否能访问判断是否由未授权访问 ②、使用普通账户标识信息去替换管理员账户标识,根据是否能进行访问判断是否有垂直越权漏洞 ③、使用普通账户标识信息去替换其他普通账户标识,根据是否能进行访问判断是否有水平越权漏洞
①、下载metinfoV4.0CMS源码进行网站搭建
②、使用phpstudy搭建该网站 ③、web访问网站地址进入安装目录 ④、创建普通用户进行登录
(:/0fc4a4ce23144741bffd5808ae208522)
会员注册路径:http://127.0.0.1:8003/member/login.php?lang=cn
⑤、进入会员中心页面修改用户信息 ⑥、使用burp进行抓包判断参数含义并重放
在修改页面中使用useid进行区分用户,将useid修改未管理员的名字
⑦、使用修改后的密码登录管理员账户
后台登录路径:http://127.0.0.1:8003/admin/login/login.php
①、下载metinfoV4.0CMS源码进行网站搭建
②、使用phpstudy搭建该网站 ③、web访问网站地址进入安装目录
④、创建两个普通用户进行登录
会员注册路径:http://127.0.0.1:8004/reg.php
⑤、使用其中一个进入会员中心页面修改用户信息 ⑥、使用burp进行抓包判断参数含义并重放
抓包分析:
后台登陆路径:http://127.0.0.1:8004/847pno/login.php?gotopage=%2F847pno%2F \\该路径为系统创建时自动生成
⑦、使用修改后的密码登录另一个账号
概述: Apache CouchDB是一个开源数据库,专注于易用性和成为”完全拥抱web的数据库”。CouchDB 会默认会在 5984 端口开放 Restful 的 API 接口,用于数据库的管理功能。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。
原理: Erlang和JavaScript,对JSON解析方式的不同,对于重复的键Erlang会存储两个值,而JavaScript只存储第二个值。
复现:①、使用docker搭建vulhub靶场 ②、进入靶场进行启动靶场
路径:vulhub/couchdb/CVE-2017-12635
命令:
docker-compose up -d \\下载启用该靶场
docker ps \\查看docker运行
docker-compose down -v \\关闭该靶场
③、使用浏览器访问
访问路径:http://180.76.161.10:5984/
④、使用burp抓包流量并修改数据尝试创建用户
⑤、利用漏洞进行创建用户
payload:
PUT /_users/org.couchdb.user:xiaobai HTTP/1.1
{
"type": "user",
"name": "xiaobai",
"roles": ["_admin"],
"roles": [],
"password": "xiaobai"
⑥、利用创建管理员登陆后台
后台登陆路径:http://180.76.161.10:5984/_utils/#login
— 实验室旗下直播培训课程 —