【安全】DVWA靶場滲透
- 備注
- 一、環境搭建
- 二、弱口令(Brute Force)
- 三、命令注入(Command Injection)
- 四、CSRF(Cross Site Request Forgery)
- 五、文件包含(File Inclusion)
- 六、文件上傳(File Upload)
- 七、
備注
2025/04/19 星期六
很久沒有做web漏洞了,準備復習一下,那就先從最簡單的DVWA靶場開始吧
一、環境搭建
dvwa是是一個PHP編寫的場景web漏洞的靶場環境,以前一般都是使用phpstudy來搭建環境,現在可以直接通過docker來啟動一個dvwa環境,docker的安裝和常用命令可以參考我之前的博客或者自行學習。直接貼出命令:
# 獲取
docker pull vulnerables/web-dvwa# 啟動
docker run --rm -it -p 80:80 vulnerables/web-dvwa
然后直接訪問自己的ip地址就可以打開dvwa的登錄頁面,這時的dvwa是沒有配置數據的,直接點登錄就可以進入
然后點擊Create/Reset Database稍等網頁就會自己刷新回到登錄界面,這個時候數據庫已經創建好了,需要使用dvwa的默認賬號admin密碼password登錄
登錄后來到了靶場首頁可以開始各個漏洞的練習了
并且可以在DVWA Security頁面配置漏洞的困難度:Low、Medium、High、Impassable,Impassable基本就是不存在漏洞的情況,可以View Source查看源代碼作為修復方法的參考。
很多題目的解法都不唯一,可能存在多種類型的漏洞,但是我們打靶是為了專項專練,只考慮標題的利用方式。
二、弱口令(Brute Force)
首先是Brute Force爆破練習,使用burpsuite抓包, 發現get請求中有username和password兩個參數,其中username在low級別下已經出為admin,將數據包發到intruder模塊進行爆破
將password參數add為要爆破的位置,然后隨便找個弱口令字典加載到payload中,開始爆破
按照回包的長度排序,會發現payload為password的回包長度與其他payload不一樣
輸入之后提示我們進入了admin的空間,成功了
三、命令注入(Command Injection)
命令注入頁面讓我們提供一個ip地址進行ping命令,輸入127.0.0.1發現確實可以執行ping命令
嘗試使用分號;拼接一個ls命令,ls命令成功執行顯示了本地文件,如果我們執行反彈shell的命令就可以getshell了
四、CSRF(Cross Site Request Forgery)
在CSRF漏洞這個題目中我們看到一個修改密碼的功能,我們先嘗試修改密碼
用burpsuite抓個包,發現修改密碼操作是通過GET請求明文傳遞的,如果是burpsuitep專業版可以直接右鍵創建一個csrf的poc
由于我使用的社區版無法自動生成poc就自己寫一個吧,寫好的網頁也應該放到公網服務器上誘導用戶訪問,這里就用本地協議代替一下,然后自己來當作被誘騙的用戶訪問這個網頁(不可以關閉dvwa的頁面)
訪問之后網頁自動跳轉回了dvwa并顯示密碼修改,說明csrf利用成功(這里是真的把密碼修改了,實驗后記得要把密碼改回去,不然下次登錄容易忘記密碼)
五、文件包含(File Inclusion)
文件包含漏洞頁面提供了三個php文件,訪問方式是通過get參數傳入文件名
直接嘗試用…/遍歷/etc/password文件,由于不知道網頁的目錄結構,需要多試幾次每次多加一個…/
六、文件上傳(File Upload)
看到上傳文件的功能,直接寫個一句話木馬上傳,會返回上傳文件的路徑(上傳時殺軟可能會報毒,我們自己寫的木馬可以放心執行)