安全在網際網路行業,是一個對專業性較強,且敏感的一個領域,所謂"一念成佛,一念入魔",安全技術利用得當,可以為你的產品、網站更好的保駕護航,而如果心術不正,利用安全漏洞去做一些未法牟利,則容易造成承擔不必要的違法責任。
在日常很容易被大家忽略的一點,在非授權的情況下,對網站進行滲透攻擊測試,也是屬於非合規操作,是觸及法律法規的。因此對於大家在學習安全測試過程中,通常建議是直接在本地直接搭建安全演練靶場環境,儘量避免直接對非授權的網站進行測試。
掌握安全測試是測試開發工程師進階的一項硬技能,今天這篇文章,就來給大家分享兩款常用安全測試演練靶場專案。
1. WebGoat
WebGoat是由OWASP組織研製出的用於進行Web漏洞實驗的Java靶場程式。提供的訓練課程有30多個,其中包括:跨站點指令碼攻擊(XSS)、訪問控制、執行緒安全、操作隱藏欄位、操縱引數、弱會話cookie、SQL盲注、數字型SQL隱碼攻擊、字串型SQL隱碼攻擊、web服務、Open Authentication失效、危險的HTML註釋等等。WebGoat提供了一系列web安全學習的教程,某些課程也給出了視訊演示,指導使用者利用這些漏洞進行攻擊。
專案地址:
https://github.com/WebGoat/WebGoat
1.1 安裝前置條件說明
進入到專案地址,選擇WebGoat的jar版本,由於WebGoat 8的jar檔案已自帶了tomcat和資料庫,所以不需要再另外安裝tomcat和mysql,只需要安裝jdk用於執行jar檔案即可。
需要說明的是,WebGoat8.0以上的版本,需要安裝依賴JDK11以上。
下載完成後,其中:
webgoat-server-8.1.0.jar
對應的是webgoat服務,用於啟動WebGoat。webwolf-8.1.0
另一個含有漏洞的輔助系統,非必需。
1.2 啟動方法
通過java -jar xxx.jar
分別啟動webgoat和webwolf兩個jar程式,例如:
執行成功後,就可以通過連結http://127.0.0.1:8080/WebGoat
訪問Webgoat。
首先需要注入一個賬號,然後登陸後,按照WebGoat的側邊順序一項一項進行測試。
目前WebGoat分為三類,Lesson
、Challenges/CTF
、WebWolf
。
其中Lesson為課程,每個課程中包括漏洞描述,成因,以及練習,
WebWolf的啟動方式基本一致,WebWolf的預設埠為9090,登入地址http://127.0.0.1:9090/WebWolf/login
,WebWolf的賬戶與WebGoat是相通的,使用WebGoat的賬戶可以直接登入WebWolf。
2. DVWA
DVWA(Damn Vulnerable Web Application)是一款比較著名的漏洞靶場,採用PHP+Mysql編寫的一套用於常規WEB漏洞教學和檢測的WEB脆弱性測試程式。包含了SQL隱碼攻擊、XSS、盲注等常見的一些安全漏洞。旨在為安全專業人員測試自己的專業技能和工具提供合法的環境,幫助web開發者更好的理解web應用安全防範的過程。
官網:
https://dvwa.co.uk/
DVWA共有十個模組,分別是:
- 1.Brute Force(暴力(破解))
- 2.Command Injection(命令列注入)
- 3.CSRF(跨站請求偽造)
- 4.File Inclusion(檔案包含)
- 5.File Upload(檔案上傳)
- 6.Insecure CAPTCHA (不安全的驗證碼)
- 7.SQL Injection(SQL隱碼攻擊)
- 8.SQL Injection(Blind)(SQL盲注)
- 9.XSS(Reflected)(反射型跨站指令碼)
- 10.XSS(Stored)(儲存型跨站指令碼)
2.1 搭建方法
如果是在Windows上搭建DVWA,安裝過程主要分為兩步:
- phpstudy下載以及安裝。
- DVWA下載及配置。
1、 由於DVWA需要執行在有資料庫/伺服器等多種環境下,我們一般選用整合了這些環境的phpStudy: https://www.xp.cn/
,這個工具可以在官網下載,如下:
2、下載完成,按要求,傻瓜式安裝即可,安裝完成後,開啟啟動Apache、MySQL兩個服務。
3、下載DVWA,將壓縮包解壓到phpstudy的WWW目錄下。並且找到DVWA\config下面的config.ini.php.dist檔案,修改其中的使用者名稱密碼,按需修改即可。最後將字尾.dist刪除,檔名為:config.inc.php
,內容如下:
<?php
# If you are having problems connecting to the MySQL database and all of the variables below are correct
# try changing the 'db_server' variable from localhost to 127.0.0.1. Fixes a problem due to sockets.
# Thanks to @digininja for the fix.
# Database management system to use
$DBMS = 'MySQL';
#$DBMS = 'PGSQL'; // Currently disabled
# Database variables
# WARNING: The database specified under db_database WILL BE ENTIRELY DELETED during setup.
# Please use a database dedicated to DVWA.
#
# If you are using MariaDB then you cannot use root, you must use create a dedicated DVWA user.
# See README.md for more information on this.
$_DVWA = array();
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = '123456';
$_DVWA[ 'db_port'] = '3306';
$_DVWA[ 'allow_url_include'] = 'on';
$_DVWA[ 'allow_url_fopen'] = 'on';
# ReCAPTCHA settings
# Used for the 'Insecure CAPTCHA' module
# You'll need to generate your own keys at: https://www.google.com/recaptcha/admin
$_DVWA[ 'recaptcha_public_key' ] = 'mikezhou';
$_DVWA[ 'recaptcha_private_key' ] = 'mikezhou';
# Default security level
# Default value for the security level with each session.
# The default is 'impossible'. You may wish to set this to either 'low', 'medium', 'high' or impossible'.
$_DVWA[ 'default_security_level' ] = 'impossible';
# Default PHPIDS status
# PHPIDS status with each session.
# The default is 'disabled'. You can set this to be either 'enabled' or 'disabled'.
$_DVWA[ 'default_phpids_level' ] = 'disabled';
# Verbose PHPIDS messages
# Enabling this will show why the WAF blocked the request on the blocked request.
# The default is 'disabled'. You can set this to be either 'true' or 'false'.
$_DVWA[ 'default_phpids_verbose' ] = 'false';
?>
4、訪問http://localhost/dvwa/setup.php
,點選建立資料庫。
)
5、建立成功,會自動跳轉到登入頁面,需要輸入使用者名稱密碼。預設使用者名稱:admin
,預設密碼:password
。
到這裡,我們已經完成了,安全漏洞靶場環境的搭建。怎麼樣,你學會了嗎?
繁忙之餘,原創不易,如果你覺得文章還不錯,可點贊、轉發、關注 ,因為這將是持續輸出更多優質文章的最強動力!