1. 程式人生 > 其它 >Vulnhub 靶場 DIGITALWORLD.LOCAL: SNAKEOIL

Vulnhub 靶場 DIGITALWORLD.LOCAL: SNAKEOIL

前期準備:

靶機地址:https://www.vulnhub.com/entry/digitalworldlocal-snakeoil,738/

kali攻擊機ip:192.168.11.129
靶機ip:192.168.11.192

一、資訊收集

1.使用nmap對目標靶機進行掃描

發現開放了 22、80和8080埠。

2. 80埠

沒發現什麼,掃一下目錄:

什麼也沒有。

3. 8080埠

檢視一下網站內的資訊,發現在 Useful Links 裡有個網址:

是一些配置資訊,,掃一下目錄:

發現了一些新的頁面,檢視一下:

/users 頁面下:

發現使用者名稱和加密過得密碼。

/registration 頁面下:

說請求方法錯了,抓包改下請求方式:

說 username 欄位不能為空,那就加上 username 欄位:

又提示 password 欄位不能為空,再加上 password 欄位:

說註冊成功了,那就在 /login 頁面登陸一下,要加上使用者名稱和密碼:

再訪問一些別的頁面(現在是在登陸狀態中):

/create 頁面:

無法瞭解請求,大概是傳入什麼東西。

/run 頁面:

說要以 url:port 形式提供要請求的 URL:

記得格式要換成 Content-Type: application/json, 在ajax中,如果沒加contentType:"application/json",那麼data就對應的是json物件;反之,如果加了contentType:"application/json",那麼ajax傳送的就是字串。

現在又說需要 secret key ,訪問一下 /secret 頁面:

POST 方式不行,再換成 GET :

還是不行,那就再加上之前返回的 cookie:

發現還是不行,想起來之前發現過一些配置資訊,從中找到了 cookie 的名稱:

再次提交 cookie:

得到 "secret_key": "commandexecutionissecret",再在 /run 裡面提交:

得到了返回資訊,像是系統的程序資訊,嘗試一些別的指令:

發現可以注入,嘗試往其中寫入 shell:

發現不行,找了找python,nc等都不行,那試試能不能上傳個 .ssh 私鑰檔案然後 ssh 登入。

二、製作ssh私鑰登入

首先先製作 ssh 私鑰:

開啟 http 服務,把私鑰檔案傳到靶機上:

檢視一下有沒有上傳成功:

時間上沒問題,上傳成功了,把 authorized_keys 檔案移到 /home/patrick/.ssh/ 目錄下:

檢視一下 .ssh 目錄下有沒有:

發現已經有了,驗證一下內容:

沒問題,那就直接 ssh 登入:

三、提權

登陸成功,看一下許可權:

發現可以以 root 身份執行任意命令

不過需要 patrick 的密碼,找找系統中的檔案,看有沒有線索,最後在 ~/flask_blog/app.py 檔案中找到了:

切換 root 賬戶:

完成。