PJzhang:centos7上LNMP方式安裝dvwa漏洞測試環境

PJzhang白話安全發表於2019-05-25

貓寧!!!

參考連結:https://www.jianshu.com/p/5491ce5bfbac

https://www.cnblogs.com/wujuntian/p/8183952.html

https://www.cnblogs.com/lonnie/p/9027566.html

https://stackoverflow.com/questions/34274492/dvwa-setup-php-function-allow-url-include-disabled/34540293

https://blog.csdn.net/reblue520/article/details/52464099

 

 

搭建dvwa的環境就相當於是搭建一個站點,這裡採用LNMP的方式,即linux,nginx,mariadb,php的方式,全部在一臺centos7上搭好。

 

linux環境配置,ip:192.168.0.100

centos7已經關閉了防火牆,selinux,否則會嚴重影響安裝程式。

更新一下centos7

yum -y update

安裝軟體源

yum -y install epel-release

快取軟體包資訊

yum makecache

 

nginx服務

安裝

yum -y install nginx

開啟

systemctl start nginx

本地瀏覽器輸入192.168.0.100,顯示nginx頁面,說明安裝成功,頁面路徑/usr/share/nginx/html

修改nginx主配置檔案vi /etc/nginx/nginx.conf

server_name填寫為192.168.0.100,這是伺服器ip

在location中新增

root html;

index index.php;兩行

 在內容 root          下面新增如下內容,實現nginx伺服器和php的關聯,儲存並退出.

 

  location ~ \.php$ {
       root /usr/share/nginx/html; #指定 php 的根目錄
       fastcgi_pass 127.0.0.1:9000;#php-fpm 的預設埠是 9000
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME

  $document_root$fastcgi_script_name;
       include fastcgi_params;
       }

nginx -t檢測是否出現配置錯誤,顯示成功。

由於進行了配置,所以不得不重啟nginx服務

systemctl restart nginx

 

安裝php相關服務

安裝,全部都安裝好

yum -y install php-fpm php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash

啟動php-fpm服務

systemctl start php-fpm

修改php-fpm配置檔案

vi /etc/php-fpm.d/www.conf,將其中的apache修改為nginx即可,儲存退出

由於修改檔案配置,需要重啟php-fpm服務

systemctl restart php-fpm

進入/usr/share/nginx/html,建立info.php的檔案,vi info.php,內容如下:

<?php
phpinfo();
?>
訪問192.168.0.100/info.php,顯示php環境已經好了。

 

 

mariadb資料庫環境

安裝

yum -y install mariadb mariadb-server

啟動

systemctl start mariadb

設定資料庫密碼,root是賬戶,jiayou是密碼

mysqladmin -u root password jiayou
進入資料庫

mysql -u root -p

建立並使用名為dvwa的資料庫

create database dvwa;
use dvwa;

exit退出資料庫

 

下載dvwa的原始碼

www.dvwa.co.uk

https://github.com/ethicalhack3r/DVWA

 

將kali linux原生程式碼全部上傳到伺服器nginx的/usr/share/nginx/html目錄之下

scp -r * root@192.168.0.100:/usr/share/nginx/html

 

訪問http://192.168.0.100/setup.php,會有一段文字提示:

DVWA System error - config file not found. Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.

cd /usr/share/nginx/html/config

生成一份新的配置檔案

cp config.inc.php.dist  config.inc.php

 vi config.inc.php,將資料庫密碼修改為jiayou,就是之前自定義的密碼。

 

再次訪問192.168.0.100/setup.php,顯示如下,有報錯, function allow_url_include: Disabled提示開啟PHP的allow_url_include

php的配置檔案存於/etc/php.ini中,vi /etc/php.ini,查詢關鍵詞allow_url,找到allow_url_include = Off,將Off改為On就好了,然後systemctl restart php-fpm。

同時進入cd /usr/share/nginx/html/config,vi config.inc.php,新增公鑰還有私鑰。

$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';

$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';

目前最後一個點:

chmod 666 /usr/share/nginx/html/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt,給予所有使用者對這個日誌檔案的讀寫許可權

條件全部滿足,這個時候點選安裝按鈕依然沒有反應,檢視nginx報錯日誌,tail -f /var/log/nginx/error.log

[error] 9112#0: *180 FastCGI sent in stderr: "PHP message: PHP Warning:  session_start(): open(/var/lib/php/session/sess_5930ao4030vq7tble1pm2see32, O_RDWR),這個值得關注。

解決方案是如下,給予這個檔案777許可權,這個檔案是很重要的,與使用者的會話身份相關。

chmod 777  /var/lib/php/session

systemctl restart php-fpm,再重啟一下。

 

之後成功安裝,對於此類報錯,不是每個人都會遇到,和每個人當時的安裝環境以及採用的安裝方法關係較大,因為即使是LNMP安裝dvwa的過程,網際網路上也方法多種多樣。

 

http://192.168.0.100/index.php

 

感謝aaron提供的關鍵技術支援!!!

 

相關文章