DVWA初學

DVWA初學筆記

DVWA的介紹

DVWA是用PHP和MySQL編寫的用於常規web漏洞教學和檢測web脆弱性測試程序,它包含SQL注入、XSS、CSRF等常見的一些安全漏洞。我們可以在本機或者靶機甚至服務器搭建DVWA環境,供我們練習滲透技術,也可以查看後端是怎麼寫的,瞭解原理。最重要的還是自己搭的平臺,合法的進行練習和滲透。這點很重要,最好不要隨意攻擊他人網站,畢竟現在有網絡安全法了。DVWA的官方網站是http:// www.dvwa.co.uk/

DVWA的安裝

搭建PHP環境

想要運行DVWA必須搭建一個PHP環境,而且在Windows下進行搭建和配置環境時十分複雜的。所以一般使用一個集成化軟件PHPStudy,這是一個可以很輕鬆進行本地環境搭建的軟件。不過之前也爆出了有後門的問題,不過據我瞭解,現在官網上的版本已經被修復過了,大家可以去下載沒有後門的版本。附上網址:http://www.phpstudy.net/

安裝步驟這裏就不過多描述了,一般就是選擇全部安裝,如果使用不了,可以看看是不是被安全軟件或者防火牆攔截了,或者相關端口被調用。

在這裏插入圖片描述

安裝DVWA

首先下載DVWA文件

然後要確保可以進入http://localhost/phpmyadmin或者連接上數據庫,如下圖:

在這裏插入圖片描述

將DVWA壓縮包文件解壓到phpstudy的www目錄下

在這裏插入圖片描述

然後在地址欄裏輸入http://localhost/DVWA-1.9/setup.php

這裏的DVWA-1.9是你放在www文件夾裏的文件名,是什麼就寫什麼。

在這裏插入圖片描述

點擊create/reset database,如果出現"could not connect to the database - please check the config file."的錯誤信息。就要打開DVWA/config/config.inc.php文件,進行一些改動

在這裏插入圖片描述

再重新創建數據庫即可。

進入鏈接http://localhost/DVWA/login.php,其中默認用戶名/密碼有幾個,這裏就說一個,其他大家自行去獲取吧。admin/password。這是其中一個賬號密碼。

配置安全級別

在頁面的左側有個“DVWA Security”,可以進入進行安全級別選擇,安全級別越高滲透難度就越大,所以一般都從low級別開始,不要隨意就impossiable,不太現實。記得設置完要submit不然就又是impossible了。

DVWA基本使用

brute Force(暴力破解)

一般是利用burpsuit和字典及逆行你暴力破解,例如轟動全國的2014年12306撞庫事件,本質就是,暴力破解攻擊。

command injection(命令注入)

通過構造惡意結構的參數來破環命令語句結構,從而達到執行惡意代碼的目的。PHP命令注入攻擊漏洞就是PHP應用裏最常見的腳本漏洞之一。Windows和Linux系統都可以用&&來執行多條命令,這就給漏洞利用創造了機會。因爲只有&&和;會被過濾,所以&不會被過濾,就可以輸入"localhost&net user"利用漏洞。

CSRF(跨站請求僞造)

利用尚未失效的cookie、會話等身份認證信息,誘騙其單擊惡意鏈接或者訪問包含攻擊代碼的頁面,在受害人不知情的情況下以受害人的身份向身份認證信息所對應的服務器發送請求,從而完成非法操作。CSRF和XSS最大的區別就是,CSRF沒有盜取cookie而是直接利用。

CSRF的最基礎利用就是直接使用構造鏈接:http://localhost/dvwa/vulnerabilities/csrf?password_new=password&password_conf=password&Change=Change#

當受害者單擊了這個鏈接,他的密碼就會被改爲password。當然這是比較簡單的攻擊方式,從鏈接就知道是在改密碼。

File Inclusion(文件包含)

當服務器開啓了allow_url_include選項時,就可以通過PHP的某些特性函數利用URL去包含動態包含文件。如果沒有對文件的來源進行嚴格的審查就會導致任意文件或命令被執行。

文件包含漏洞分爲本地文件包含和遠程文件包含,遠程文件包含漏洞則是因爲開啓了PHP配置裏的allow_url_fopen選項。

File Upload(文件上傳漏洞)

通常是由於上傳文件的類型和內容沒有進行嚴格的審查,使得攻擊者有機可乘,上傳木馬來獲取服務器的webshell權限。所以這個漏洞會給系統以毀滅性的破壞,有很多的中間件都曾經爆出過文件上傳漏洞,例如Apache、Tomcat、Nginx等

但是文件上傳漏洞的重點是你要能夠成功上傳文件到服務器。其次是你上傳的文件必須是可以進行執行的,最後還要知道上傳文件的路徑。也就是上傳木馬,得到路徑,遠程利用。

Insecure CAPTCHA(不安全的驗證流程)

CAPTCHA是全自動區分計算機與人類的圖靈測試。之所以說是不安全的是因爲,在驗證過程裏存在邏輯漏洞。

測試時需要先在http://www.google.com/recaptcha上註冊recaptcha_public_key和recaptcha_prive_key,將其填入DVWA中config目錄下的config.inc.php文件裏,就可以看到初始界面。

SQL Injection(SQL注入)

測試是否存在注入點,這裏用戶交互的地方爲表單,這就是常見的SQL注入漏洞存在的地方。正常測試輸入1,可以得到正常的查詢結果。以後再詳細說明SQL。

SQL injection(盲注)

所謂盲注就是再我們輸入一些特殊字符時沒有回顯,影響不大,輸入‘or 1=1#依舊可以顯示所有的數據。

XSS(reflected)(反射型XSS)

XSS就是跨站腳本攻擊,通過向web網頁植入惡意的Script代碼,當用戶瀏覽網頁時就會執行代碼,從而惡意攻擊用戶。

XSS(stored)(儲存型XSS)

相比較於放射型XSS漏洞,存儲型XSS影響更加持久,如果加入的代碼過濾不嚴,那麼這些代碼會儲存在服務器裏,用戶訪問該頁面就會觸發代碼執行,這種XSS比較危險,容易造成蠕蟲、盜取cookie等。

在name欄輸入1,在message欄輸入一下代碼,可以看到下圖

<script>alert(/xss/)</script>

在這裏插入圖片描述

參考文獻

[1]陳鐵明.網絡空間安全實戰基礎:第一版.北京:人民郵電出版社,2018

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章