原創(chuàng) Yusei 余生安全團隊 2022-01-11 23:07
申明:該文章僅供安全學習和技術分享,請勿將該文章和文章中提到的技術用于違法活動上,切勿在非授權狀態(tài)下對其他站點進行測試,如產生任何后果皆由讀者本人承擔!
如有侵權,請聯(lián)系后臺進行刪除。轉載請注明出處,感謝!
我們在剛學習 SQL 注入的時候,往往都需要一個能 SQL 注入的網站進行 SQL 注入學習。如果直接去網上尋找存在 SQL 注入的網站對新手來說有些難度,并且在未授權狀態(tài)對網站進行 SQL 注入測試是違法的,因此我們一般都是在本地搭建一個能 SQL 注入測試的網站。
這里就來講解一下 SQLi-Labs 的下載,安裝,搭建教程。
注意:PHP 版本一定要設置成 PHP5 以上,PHP7 以下,PHP5 以上才有 information_schema 庫,PHP7 之后的 mysql_ 都改成了 mysqli_** 了,所以用其他版本的 PHP 可能會出錯。
SQLi-Labs 是一個專業(yè)的 SQL 注入練習平臺,它適用于 GET 和 POST 等多場景的注入。
在下載源碼前我們首先需要知道自己的 PHP 是什么版本:
下圖是 php5.x 版本源碼
環(huán)境:Windows 10 + PHP 5.45 + MySQL 5.5.53
由于 SQLi-Labs 需要 PHP+MySQL 的環(huán)境,我們使用的是 phpStudy 這個軟件。下載地址為:https://www.xp.cn/download.html
首先我們將剛才下載的源碼壓縮包解壓到 phpStudy 的網站根目錄下,如我的:C:\phpStudy\PHPTutorial\WWW\sqli-labs-master(為了方便訪問我將目錄更名為 sqli)
修改 \sqli\sql-connections 目錄下的 db-creds.inc 文件內容,將數(shù)據(jù)庫默認的信息修改為自己數(shù)據(jù)庫的信息
<?php
//give your mysql connection username n password
$dbuser ='root';
$dbpass ='';
$dbname ="security";
$host = 'localhost';
$dbname1 = "challenges";
主要是修改 dbpass 的內容,部分 linux 下默認為空,phpStudy 的 Windows 版中默認為 root,如果使用其他環(huán)境則根據(jù)具體環(huán)境修改即可。
打開瀏覽器訪問「http://127.0.0.1/sqli/」并點擊「Setup/reset Database for labs」來初始化創(chuàng)建數(shù)據(jù)庫
在瀏覽器打開「http://127.0.0.1/sqli/」就看到 SQLi-Labs 的內容了,分為基礎 SQL 注入、高級 SQL 注入、SQL 堆疊注入、挑戰(zhàn)四個部分,總共約 75 個 SQL 注入漏洞。
環(huán)境:Ubuntu 18.04 + PHP 7.2.24 + MySQL 5.7.30
所以需要安裝 LAMP 環(huán)境,可以查看文章「Ubuntu 18.04 搭建 LAMP 環(huán)境」。
根據(jù)自己服務器上 php 的版本下載相應的源碼,我這里是 php7 的環(huán)境。
sudo apt-get install git
sudo git clone https://github.com/skyblueee/sqli-labs-php7 /var/www/html/sqli-labs
下載完成后進入 /var/www/html/sqli-labs 文件夾,找到 sql-connections/db-creds.inc 文件并修改其中的內容為我們的數(shù)據(jù)庫用戶名和密碼。
<?php
//give your mysql connection username n password
$dbuser ='root'; //修改成你數(shù)據(jù)庫的用戶名
$dbpass =''; //修改成你數(shù)據(jù)庫的密碼
$dbname ="security";
$host = 'localhost';
$dbname1 = "challenges";
?>
修改完成后打開瀏覽器訪問 ip/sqli-labs,點擊 Setup/reset Database for labs 進行安裝
如果遇到以下情況,多半是因為配置文件的問題,Linux 默認沒有密碼,所以需要設置一下 MySQL 的密碼。
看到以下頁面說明安裝成功。
這里我使用的是 Docker version 19.03.6
首先需要搜索鏡像
docker search sqli-labs
這里我選擇 acgpiano
docker pull acgpiano/sqli-labs
創(chuàng)建一個新的容器并運行,這里的名字 sqli-labs 和端口 9999 大家可以自行修改
docker run -dt --name sqli-labs -p 9999:80 --rm acgpiano/sqli-labs
訪問 ip:port,同樣的點擊 Setup/reset Database for labs 初始化創(chuàng)建數(shù)據(jù)庫,然后再次訪問點擊下面的題目即可。
確定