說明本手冊作爲教學的一部分供大家參考。
具體的關於web漏洞的學習大家可以參考《web滲透測試-常見漏洞解析課程》
http://edu.51cto.com/course/course_id-5281.html
---------------------------------------
1. 系統介紹
DVWA(dema vulnerable web application)是一個基於PHP/MYSQL環境寫的一個web應用。他的主要目的是幫助安全專業員去測試他們的技術和工具在合法的環境裏面也幫助開發人員更好的理解如何加固他們開發的web系統同時幫助老師或者學生去教或者學習web應用安全在教學環境裏面。如果你想學習web滲透測試測試遇見DVWA是你的幸運。
DVWA是randomstorm的一個開源項目。如果你更多的瞭解randomstorm的服務和產品你可以訪問他們官方網站www.randomstorm.com
DVWA項目開始與2008年的12月並且在發佈後人氣一直穩定增長。他現在被全球大量的安全專業人員老師和學生使用。DVWA現在被很多流行的滲基於linux發行版本的透測試系統所引用比如samuriai 和其他
1. 授權說明
這個文檔是DVWA的一部分。
DVMA是一個免費的軟件你可以發佈或者修改他在GNU授權標準下。包括所有的版本。
2. 安全警告
DVWA是一個包含有很多漏洞的web系統所以千萬不要將他放到你的工作服務器上以免其他應用受到牽連。我們建議你將他安裝在你的內網的測試機器上且僅供測試使用。
3. DVWA的除初始化安裝
DVWA是基於PHP/mysql環境開發的所有需要PHP/MYSQL環境來支持的運行在安裝它前建議直接使用XAMPP集成軟件來搭建PHP/Mysql環境。下面將介紹他在windows環境下的安裝。
1.安裝環境
1到http://www.xampps.com/下載xampp的windows版本安裝即可。
2到http://www.dvwa.co.uk/下載dvwa的的zip壓縮包。
2. dvwa的安裝步驟
1將dvwa-1.9.zip文件解壓並將文件名修改爲dvwa,將文件拷貝到XAMPP安裝目錄下的\xampp\htdocs目錄下。
2通過xampp的控制檯啓動XAMPP的apache和mysql服務。3通過瀏覽器訪問dvwa所在主機訪問的地址爲http://x.x.x.x/dvwa進入dvwa的web安裝界面見下圖
通過該頁面的“create/resetdatabase”可以直接將DVWA的數據庫建立起來在創建之前請修改\xampp\htdocs\dvwa\config裏面config.php裏面連接mysql數據庫的密碼。XAMPP集成環境裏面MYSQL的默認登陸密碼爲root/root,請根據實際情況修改。修改示例如下
修改後點擊保存。
回到dvwa的setup頁面點擊“create/reset database”顯示如下頁面即表示安裝成功。
此時會自動跳轉到DWVA的登陸界面或者點擊login打開登陸界面。默認的登陸賬號信息爲
Username: admin
Passwod:password
5. DVWA上的漏洞列表
DVMA正如他的名字一樣是一個包含了很多漏洞的應用系統。DVWA的漏洞包括了OWASP oepen web application security project的web 10大漏洞。這裏提一下Owasp top10 2010年發佈的數據
The OWASP Top 10 Web ApplicationSecurity Risks for 2010 are:
A1: Injection // 注入漏洞
A2: Cross-Site Scripting (XSS) //跨站腳本
A3: Broken Authentication and Session Management //錯誤的授權和會話管理
A4: Insecure Direct Object References //不正確的直接對象引用
A5: Cross-Site Request Forgery (CSRF)//僞造跨站請求
A6: Security Misconfiguration//安全性錯誤配置
A7: Insecure Cryptographic Storage//不安全的加密存儲
A8: Failure to Restrict URL Access//未驗證的重定向和傳遞
A9: Insufficient Transport Layer Protection//不足的傳輸層防護
A10: Unvalidated Redirects and Forwards//無效的重定向和轉發
DVWA裏面具體包括如下這些漏洞:
1.暴力破解漏洞通過brute force登錄頁面進入到該漏洞的測試位置。這個漏洞是用來測試暴力破解工具和展示不安全的弱密碼。
2.命令執行漏洞在存在風險的系統上執行命令。
3.CSRF僞造跨站請求漏洞,允許攻擊者去修改應用的管理員密碼。
4.SQL注入,DVWA包括盲注和錯誤型注入兩種SQL注入漏洞類型。
5.不安全的文件上傳漏洞,允許攻擊者上傳惡意的文件到web服務器上
6.XSS跨站腳本漏洞,允許攻擊者注入他們自己的腳本到web服務器上。DVWA系統裏面包含了反射性XSS和存儲型XSS兩種類型。
7.文件包含漏洞,允許進行本地文件包含執行和遠程文件包含執行
8.驗證碼繞過(但由於驗證碼使用了google的,我們網絡太和諧,需要代理或者VPN連接,經過VPN環境測試,也不太靠譜)
6. DVWA的安全級別和漏洞位置說明
在DVWA上有三種安全級別分別是
-
High:在這個級別下所有有漏洞的代碼都被修補過了你可以通過查看源代碼來查看修補過的漏洞。通過高級別漏洞代碼的查看可以跟低級別的代碼做一些對比從而讓安全人員更加深入的理解漏洞是怎麼出現的。
-
Medium中級別表示代碼已經被開發人員嘗試加固過了但是加固的不夠徹底因此漏洞還是存在。這讓開發人員能夠跟進一步認識漏洞。同時對學習者來說因爲這個漏洞加大了難度要拿下這個漏洞也是一個挑戰。
-
Low在個級別下所有的漏洞均沒有被修復過。你可以在這個級別下測試所有的漏洞。並且通過查看源代碼來了解漏洞是如何發生的。
在LOW級別下你可以通過下面的指引找到對應的漏洞
BruteForce/Weak Passwords;
http://127.0.0.1/dvwa/login.php
http://127.0.0.1/dvwa/vulnerabilities/brute/
CommandExecution;
http://127.0.0.1/dvwa/vulnerabilities/exec/
CrossSite Request Forgery (CSRF);
http://127.0.0.1/dvwa/vulnerabilities/csrf/
FileInclusion;
http://127.0.0.1/dvwa/vulnerabilities/fi/?page=include.php
SQLInjection;
http://127.0.0.1/dvwa/vulnerabilities/sqli/
http://127.0.0.1/dvwa/vulnerabilities/brute/
InsecureFile Upload;
http://127.0.0.1/dvwa/vulnerabilities/upload/
ReflectedCross Site Scripting;
http://127.0.0.1/dvwa/vulnerabilities/xss_r/
StoredCross Site Scripting;
http://127.0.0.1/dvwa/vulnerabilities/xss_s/
Fullpath Disclosure;
Site wide. Set PHPSESSID to NULL. (NullSession Cookie) http://www.owasp.org/
index.php/Full_Path_Disclosure
Authenticationbypass;
If the admin changes the default password(password) and the 'attacker' knows what
the default password is. The 'attacker' mayaccess http://127.0.0.1/dvwa/setup.php
to reset the database including the defaultpassword.
Authenticationbypass;
If the admin changes the default password(password) and the 'attacker' knows what
the default password is. The 'attacker' mayaccess http://127.0.0.1/dvwa/setup.php
to reset the database including the default password.
所有的漏洞用戶都可以在對應的頁面點擊“view source ”的按鈕通過這個按鈕用戶可以看到對應漏洞的原代碼。同時可以比較不同級別下的源代碼從而讓安全學習人員和開發人員能夠更加進一步的認識漏洞。
PHP-IDS是一款流行的PHP入侵檢測系統就像我們知道的WAFweb應用防火牆一樣PHP-IDS可以像WAF一樣保護我們的系統。在DVWA上應用了php-ids,你可以通過頁面上的開關來將PHP-IDS關閉或者打開PHP-ids在開啓的情況下會檢查提交的惡意代碼從而進行安全防護。
7. DVWA上的漏洞示例-存儲型XSS
這裏以反射性XSS爲例來演示如何使用DVWA上的漏洞。
第一步登錄DVWA
第二步將dvwa-security-裏面的安全級別調到最低級別
第三步選擇XSS(Reflected)頁面
第四步輸入測試腳本<script>alert(\xss\)</script>點擊提交
第五步由於此處存在反射性XSS漏洞瀏覽器會彈出“\xss\”
第六步將安全級別依次調到medium以及high級別並分別使用相關的技巧對其進行突破
通過對漏洞的不同的級別的練習可以幫助你理解漏洞的原理以及提高滲透測試技巧。
具體的關於web漏洞的學習大家可以參考《web滲透測試-常見漏洞解析課程》
http://edu.51cto.com/course/course_id-5281.html
本文出自 “毫不尷尬的吃掉最後一塊肉”
博客,請務必保留此出處http://taiji007.blog.51cto.com/11034834/1738532