天天看點

【技術分享】靶場--SSRF打内網服務

作者:星雲博創
【技術分享】靶場--SSRF打内網服務

01 判斷SSRF是否存在

1. 通路http://www.badu.com網站。

【技術分享】靶場--SSRF打内網服務

2. dnslog平台收到回顯,存在ssrf。

【技術分享】靶場--SSRF打内網服務

3. 嘗試讀取檔案/etc/passwd,并傳回内容,可以判斷出是回顯型ssrf。

【技術分享】靶場--SSRF打内網服務

4. 讀取/etc/hosts檔案,目前機器ip是172.72.23.21。

【技術分享】靶場--SSRF打内網服務

5. 嘗試讀取/etc/shadow 和/root/.bash_histor,發現無權限。

02 探測内網存活主機服務

使用dict協定對内網主機進行存活探測。

【技術分享】靶場--SSRF打内網服務

03 172.72.23.22—代碼注入

1. 利用ssrf通路内網http://172.72.23.22,提示CodeExec。

【技術分享】靶場--SSRF打内網服務

2. 使用burp的Intruder子產品對網站進行目錄爆破,存在phpinfo.php和shell.php。注意:此處需要去除特殊字元編碼。

【技術分享】靶場--SSRF打内網服務

3. 檢視shell.php,可以直接穿參執行系統指令檢視flag。

【技術分享】靶場--SSRF打内網服務

04 172.72.23.23—sql注入

通路http://172.72.23.23,提示是get型sql注入。

【技術分享】靶場--SSRF打内網服務
【技術分享】靶場--SSRF打内網服務
【技術分享】靶場--SSRF打内網服務

05 172.72.23.24—指令執行

1. 通路http://172.72.23.24,網站是一個網絡測試功能接口。一般來說,這種會存在指令執行漏洞。但是系統也可能會過濾一些特殊字元,需要我們進行繞過。

【技術分享】靶場--SSRF打内網服務

2. 這裡是post請求,需要利用gopher協定發送post請求。此處要求必須有4個參數為必要參數,用于傳遞Content-Type,Content-Length,host,post的參數。如果有多個參數,則參數之間的&也需要進行URL編碼。

3. 将資料包進行兩次url編碼。

【技術分享】靶場--SSRF打内網服務
【技術分享】靶場--SSRF打内網服務

4. 利用gopher協定發送post請求,成功執行指令。

【技術分享】靶場--SSRF打内網服務
【技術分享】靶場--SSRF打内網服務

5. 執行指令檢視flag,這裡提示flag在/tmp目錄,但是檢視後發現flag并不存在此處。

【技術分享】靶場--SSRF打内網服務

06 172.72.23.25—xml

1. 通路http://172.72.23.24,跳轉一個登入界面。

【技術分享】靶場--SSRF打内網服務

2. 成功讀取檔案。

【技術分享】靶場--SSRF打内網服務

3. 此處測試指令執行,結果顯示無法執行。

07 172.72.23.26—Tomcat

1. 通路http://172.72.23.26:8080,位址是一個Tomcatyang li界面。構造PUT請求包,将資料包進行二次url編碼。

【技術分享】靶場--SSRF打内網服務

2. 使用gopher協定發送請求,響應包傳回201說明寫入成功。

【技術分享】靶場--SSRF打内網服務

3. 利用ssrf,直接通路shell檔案執行指令即可。

【技術分享】靶場--SSRF打内網服務

08 172.72.23.27—Redis

1. 172.72.23.27機器開放了6379端口,測試存在未授權,redis版本為5.0.5。

【技術分享】靶場--SSRF打内網服務

2. redis的shell一般可以用寫入計劃任務(Centos)、寫入公鑰、寫webshell(知道網站實體路徑)。因為這台機器沒有開放web服務,可以先嘗試寫入計劃任務。

3. 使用腳本。

【技術分享】靶場--SSRF打内網服務
【技術分享】靶場--SSRF打内網服務

4. 成功反彈shell。

【技術分享】靶場--SSRF打内網服務

5. 或者手工輸入。

【技術分享】靶場--SSRF打内網服務

09 172.72.23.28—Redis

1. 前面通過探測服務,得知這台機器已開放80和6379端口。

2. 使用dict協定通路6379端口的服務,redis需要驗證密碼。如果在内網redis需要認證的情況下,我們可以使用dict或gopher協定對密碼進行爆破。

【技術分享】靶場--SSRF打内網服務

3. 通路80端口存在檔案包含,這裡可以嘗試讀取redis的配置檔案來擷取密碼。

【技術分享】靶場--SSRF打内網服務
【技術分享】靶場--SSRF打内網服務

4. 成功讀取redis的密碼。

【技術分享】靶場--SSRF打内網服務

5. 使用dict協定進行認證,可以确定讀取的密碼是正确的。

【技術分享】靶場--SSRF打内網服務

6. 使用Gopherus生成payload。

【技術分享】靶場--SSRF打内網服務
【技術分享】靶場--SSRF打内網服務

7. 将gopher://127.0.0.1:6379/_後面的payload進行url解碼後,在上方添加驗證密碼并增加換行,然後進行兩次url編碼。

【技術分享】靶場--SSRF打内網服務

8. 發送資料包。

【技術分享】靶場--SSRF打内網服務

9.通路http://172.72.23.28/shell.php,成功執行指令。

【技術分享】靶場--SSRF打内網服務

10. 此外,大家也可以寫入計劃任務,方法和寫shell一樣——利用gophers生成腳本,進行url解碼,并添加auth後,再進行兩次url編碼即可。

繼續閱讀