前言:
本篇文章只學習sqlmap如何使用請不要對互聯網上站點進行***測試。環境所用系統爲:centos6.6,sqlmap版本爲0.9,靶機環境爲預先搭建好存在漏洞的站點。實驗環境模擬發現測試站點有注入漏洞,使用sqlmap工具進行注入嘗試最後***的操作。
實驗演示:
點擊其中分類發現修改id可以直接進行對應頁面跳轉,由於在域名後添加 "and 1=2"進行測試,結果如下:
我們發現由於程序沒有進行相關過濾,當條件爲假時,可以控制SQL命令的返回結果,此時可證明發現的SQL注入缺陷可以被利用。
2.sqlmap工具
知道了注入點接下來使用sqlmap工具進行測試。
註釋:這裏使用到sqlmap參數的兩個參數 --batch 和 -u,--batch參數可以爲我們省去交互式的過程默認自己會全部執行下來。-u參數表示掃描的URL連接。
掃描完成後,我們可以看到掃描出了注入漏洞,sqlmap將漏洞的類型和如何使用漏洞代碼都告訴了我們,如果需要手工驗證複製給出的代碼執行即可。
確定了url存在注入漏洞後,我們看下有哪些數據庫:
註釋:--current-db參數可以獲取到有哪些數據庫,在執行後我們發現有個叫“lesson”的數據庫。
那知道了數據庫名,我們繼續查看該數據庫下有哪些表:
註釋:參數-D"數據庫名" --tables ,表示指定數據庫將起下的表全部列出。這裏已經將lesson數據庫下的表都羅列了出來。
有了表名可以繼續查看錶的結構
註釋:由於51cto上傳圖片加了水印,,這裏再將代碼重新寫一下,
sqlmap --batch -D"xxx" -T"xxx" --columns -u "xxxxxxxxxxx"
這裏用到的參數是-T 和 --columns,-T的意思和-D相同,這裏寫的是表名,--columns參數可以獲取當前表的結構信息。
現在知道了表結構,我需要看下adm_name和adm_pwd字段的值,那就執行以下操作:
註釋:這裏用到的參數是 -C "字段名" --dump ,如果有多個字段用“,”分隔即可回車後會進行暴力破解最後看到破解信息,這裏看到的都是經過md5加密的數據,需要進行解密才能拿到最後信息,在線破解md5的網站有很多這裏就不介紹了。
現在我希望把整個庫拿到本地怎麼做呢,執行下面的命令:
註釋:--dump-all 參數表示把所有的數據庫都拖到本地,最後拿到的庫會放在output文件夾中。
用法總結:
sqlmap --batch -u "xxxxx" sqlmap --current-db -u "xxxxxx" sqlmap -D"xx" --tables sqlmap -D"xx" -T"xx" --columns sqlmap --dump-all -u "xxxxx"
這裏需要注意的是有些站點有WAF設備,batch參數可能會引起WAF的告警所以需要慎用。
個人看法:
到如今互聯網安全已經被越來越多的人關注,像實驗中的站點漏洞也越來越少了大家都代碼的安全都有了一定程度上的重視,過濾了很多危險操作比如and 1=2,'信息,數據庫中密碼都進行了加salt來提高安全性這又在一定程度上加大了破解的難度。
寫這篇文章知識爲了學習技術,知道攻才能更好的防,寫的不對的地方還請各位大牛指出。謝謝啦~