初識Web安全(一)在Kali Linux 2019.4中搭建DVWA和sqli-labs


1. 網絡不是法外之地,學習網絡安全只是爲了更好地保護網絡安全

2. 文中內容僅爲學習交流,涉及到的工具和方法均不能用於破壞網絡安全

該筆記僅在CSDN中發表,如轉載請大家註明出處。

CSDN:http://blog.csdn.net/elang6962?viewmode=contents

本文環境:

  • PhpStudy=0.4公測版

  • OS:Kali Linux 2019.4


在諸多教程和先輩的建議中,Web安全都是滲透測試和漏洞挖掘等方向的安全入門必修課,其中SQL注入和XSS注入又是Web安全的基礎和重點。

任何技術都需要在基礎理論學習後進行大量的實踐,逐漸把理論轉化爲自身的技能,並且在實踐中不斷加深對理論的理解。網絡安全更是如此,這一點應該有一部分大學和研究生安全專業的同學有共鳴。

安全專業的實踐與其他學科有一個關鍵的區別就在於,剛剛入門時根本沒有可供實踐的場所。別說是法律不允許了,即使法律允許,能被三角貓的功夫用於實踐的網站或者系統應該也不容易找到。因此和我一般的入門者就需要靶場這種神奇的系統,本文詳細的介紹了作者在Kali 2019.4中搭建DVWA和sqli-labs的過程,全文多圖預警,詳細到幾乎每一次點擊鼠標都有介紹。

1 PhpStudy安裝

PhpStudy是一個網站搭建的集成環境,包括apache、nginx、mysql、php等網站環境都可以一鍵安裝,可以使用phpmyadmin管理數據庫,在Linux版本中使用網頁進行網站服務器管理。

Linux版本不提供安裝包,安裝過程最好到官網照着來(目前的域名是https://www.xp.cn/linux.html),或者直接按照如下步驟:

  1. 終端內執行wget -O install.sh https://download.xp.cn/install.sh && sudo bash install.sh,非root用戶要加sudo
  2. 經過些許的等待,安裝完成後終端會打印出如下提示:
=================安裝完成==================

請用瀏覽器訪問面板http://1XX.XX.XX.XX:9080/0XXXX
系統初始賬號:admin
系統初始密碼:QJ6XXXX7tZ
官網https://www.xp.cn
如果使用的是雲服務器,請至安全組開放9080端口
如果使用ftp,請開放21以及30000-30050端口
如果在虛擬機安裝,請將ip換成虛擬機內網ip

===========================================

不要理會提示中的ip,直接在瀏覽器中輸入127.0.0.1:9080/0XXXX,使用初始帳號和密碼登錄即可。後面的0XXXX叫做授權碼,每次登錄網頁面板都必須輸入,但是初始授權碼可以修改。

  1. 修改初始密碼和登錄授權碼。如圖,右上角用戶名稱處,點擊選擇修改密碼可修改面板登錄密碼;左下角設置中可以修改一個好記的授權碼。

image

  1. 面板中的其他操作。在設置中不要選擇綁定域名,並綁定ip爲127.0.0.1,個人認爲這樣最安全,確保只有自己可以進面板;當然如果在虛擬機中搭建就無所謂啦,域名隨便綁,IP要設置成虛擬機的內網IP;在網站-localhost-配置-網站目錄中查看網站目錄,後期可以把各種靶場文件夾直接丟進這個目錄內。
  2. 使用方法。終端控制sudo xp,選擇‘1’開啓phpstudy,在面板中開啓apache。在瀏覽器輸入127.0.0.1,可測試是否安裝成功。

image
image

  1. mysql和phpmyadmin安裝和使用。在面板-軟件管理中找到phpmyadmin,點擊“安裝”,在安裝時會要求選擇站點,並安裝在該站點的目錄中。使用時點擊phpmyadmin後面的“管理”會自動打開一個網頁,這個網頁是用外部IP打開的,只需在地址欄中把IP改成127.0.0.1就可以正常進入。但是,每次登錄phpstudy會產生一個token,必須使用它才能打開phpmyadmin,也就是說,一定要在網頁面板裏打開,且等待到網頁錯誤,才能修改ip進入。mysql同樣在軟件管理中找到後安裝即可。

image
image

  1. 設置數據庫root密碼。練習中一切爲方便服務,在搭建靶場的過程中可能會建立N個不同名稱的數據庫,且每個靶場都要設置連接數據庫的用戶名和密碼。如果爲每個數據庫建立一個用戶,不僅麻煩,而且在搭建sqli-labs的過程中發現這是不可能實現的。設置root密碼,靶場在初始化時會自己建立對應的數據庫。如圖,在面板-數據庫中,點擊“root密碼”就可以設置。

image

  1. 設置網站配置文件爲只能本地訪問。在面板-網站-localhost-配置-配置文件中,修改爲只能本地訪問 (windows下在phpstudy-設置-配置文件-vhosts.conf),在AllowOverride All下面添加,修改完成重啓apache服務。最終結果是
    <Directory "/www/admin/localhost_80/wwwroot/">
		DirectoryIndex index.php index.html error/index.html
		AllowOverride All
		Require all denied
		Require ip 127.0.0.1
		Require host localhost
	</Directory>

不清楚此條在Linux中是否有必要,但修改後等於用戶本人接管了phpstudy對網站的管理,其他配置項會全部消失。每次進入配置文件時系統會提示是否恢復,選擇“恢復”後用戶對配置文件的修改會刪除。

2 DVWA的搭建

DVWA是Web安全滲透測試的綜合平臺,難度有low、medium、high、impossible四個等級,除了直接練習,還能結合網頁代碼進行分析,可謂是新手必備提升信心之佳品。

  1. 首先到github下載。在github首頁直接搜索dvwa

image

  1. 選擇如圖這個進入,直接下載zip包

image
image

  1. dvwa配置。解壓zip包,整個dvwa文件夾複製到phpstudy中網站目錄下,/www/admin/localhost_80/wwwroot/dvwa/config/下的‘config.inc.php.dist’複製一份改名爲‘config.inc.php’雙擊打開,修改數據庫用戶名和密碼後保存關閉:
$_DVWA = array();
$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'root'; #此處如新建了用戶請填寫其用戶名
$_DVWA[ 'db_password' ] = 'password'; #此處填寫用戶名對應的密碼

$_DVWA[ 'default_security_level' ] = 'low'; #設置dvwa的默認難度爲low,否則是impossible
  1. dvwa初始化。瀏覽器輸入127.0.0.1/dvwa,直接拉到最下面,點擊Create/Reset Database,等待數據庫建立後自動進入登錄界面,用戶名admin,密碼password。恭喜!可以開始練習了。

image

如果考慮到後續會同時使用更多的靶場,最省事的做法是不要修改默認網站的網站目錄,將每個靶場的文件夾都複製到這個目錄內,在瀏覽器中使用127.0.0.1/dvwa這類的地址進入不同的靶場。

3 sqli-labs

  1. sqli-labs的安裝。同樣在github中搜索下載,解壓後複製到網站目錄中。不同的是sqli-labs原版只支持php5,有需要可以下載php7版本的。

image

  1. 配置。/www/admin/localhost_80/wwwroot/sqli-labs/sql-connections打開db-creds.inc,修改數據庫用戶名和密碼:
$dbuser ='root';   #數據庫用戶名
$dbpass ='pass';   #密碼
$dbname ="security"; #靶場建立的第一個數據庫
$host = 'localhost';
$dbname1 = "challenges"; #靶場建立的第二個數據庫

從上面的配置可以看到,雖然建立了2個數據庫,但只有一個用戶名起作用,而在mysql裏沒辦法在不同的數據庫中使用相同的用戶名,也就是說必須使用數據庫的root用戶進行連接。
3. 初始化。127.0.0.1/sqli-labs進入,點擊Setup/reset Database for labs,如果沒有報錯就算成功了。回到首頁,點擊SQLi-LABS Page-1(Basic Challenges)就可以選擇題目。

image

  1. 教程。在php7版本的文件夾中有一個sqli-labs-usermanual-cn.pdf ,醒目的cn字樣,誘人的中文教程。

2個靶場的搭建就算完成了,並且搭建好phpstudy的平臺後,再搭建這一類靶場都變得非常簡單。願自己和大家都能堅持下去,實現自己的目標!

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