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