用靶機簡單的介紹一下數據庫的注入和提權

ASP 網絡安全 SQL Python 微軟 翠螺莊 2018-12-01

用靶機簡單的介紹一下數據庫的注入和提權

先給大家科普一下什麼叫計算機靶機。靶機就是網絡常說的滲透類測試演練系統,是用虛擬系統軟件(例如著名的VMware_workstation軟件)做出來的模擬機,這些系統裡面包含了一些實際安全漏洞,讓安全測試人員親身體驗如何發現並利用這些個漏洞,學習漏洞的相關知識同時,加強安全防護的意識。

SQL數據庫注入漏洞以微軟的ASP和ASP.NET最為常見,就以最簡單的ASP為例給大家講講如何判斷識別網站系統有沒有漏洞和如何入侵。

先介紹一下檢測入侵過程的主要幾個步驟:

1、 判斷並測試ASP系統是否有數據庫注入漏洞。

2、 獲取數據庫的表名。

3、 測試管理員ID。

4、 測試管理員的用戶名長度和管理員密碼的長度。

5、 從高到底一次測試出管理員用戶名和密碼。

6、 如果密碼是明文,就直接用,如果是MD5加密的,直接導入弱密碼文本庫破解。

7、 用管理員賬號登陸後臺

8、 上傳網頁型控制木馬,對服務器實行接管。

9、 現在基本上是你想幹什麼就可以幹什麼了。

測試ASP系統是否有注入漏洞 這很關鍵,我說有經驗了可以直接看出來,有人還不信。現在我用模擬機告訴你,真的是很簡單。打開ASP網站一個分類網頁,比如這樣的的/list.asp?id=11和這樣/class.asp?id=18等,只要在其後面分別加入and 1=1 和and 1=2進行測試,具體形式為/list.asp?id=11 and 1=1,或者 /list.asp?id=11 and 1=2,注意一定要有空格。都學過數學,1=1肯定是正確的,1=2肯定是錯誤的。正確的沒什麼好說的,直接顯示正常網頁,但是你問服務器1=2是不是正確的,它肯定告訴你是錯誤的,那顯示什麼尼?結果是他顯示:

Microsoft JET Database Engine 錯誤 '80040e14'

字符串的語法錯誤 在查詢表達式 'ID=11'' 中。

/list.asp,行8

從這個錯誤提示我們能看出下面幾點:

1. 網站使用的是Access數據庫,通過JET引擎連接數據庫,而不是通過ODBC。(注:熟悉網站的開發和哪些網站通常使用什麼樣的數據庫。不同的網站連接數據庫的方式也要了解。Access和SQLServer是ASP和ASP.NET的標配,所以對數據庫的知識也要有一定的理解)

2. 程序沒有判斷客戶端提交的數據是否符合程序要求。

當然了,不一定每臺服務器的IIS都返回具體錯誤提示給客戶端,如果程序中加了cint(參數)之類語句的話,SQL注入是不會成功的,但服務器同樣會報錯,具體提示信息為處理 URL 時服務器上出錯。請和系統管理員聯絡。

如果是這樣,那我們怎麼辦呢?從上面的例子我們可以知道,SQL注入的原理,就是從客戶端提交特殊的代碼,讓服務器報告錯誤,收集程序及服務器的信息,從而獲取你想到得到的資料。用1=2不行,你就用單引號,雙引號,這個就涉及到你對SQL語句的瞭解多少了。

有了手工檢測漏洞,大家有個瞭解了,如果再用手工去測試管理員用戶名和密碼就很累了,放心,有大神出的sqlmap,在python系統下直接調用源文件sqlmap.py,後面的一切就手到擒來了。

先用他檢測一下有漏洞的靶機系統,如圖1:

用靶機簡單的介紹一下數據庫的注入和提權

看到返回了 服務器的類型,web環境,數據庫類型。確定存在漏洞我們開始下一步的注入。根據返回的數據庫類型我們確定數據庫為access數據庫。使用--tables 猜解表。如圖2:

用靶機簡單的介紹一下數據庫的注入和提權

用靶機簡單的介紹一下數據庫的注入和提權

猜解完表格後我們進一步猜解表的內容。命令 : python sqlmap.py -u URL -T admin --columns 注意 暴力破解的線程數 最大為10 ,其他的參數可以直接回車。如圖3:

用靶機簡單的介紹一下數據庫的注入和提權

等待一段時間後,很快程序工作完畢,查看結果。如圖4:

用靶機簡單的介紹一下數據庫的注入和提權

後面的基本沒有什麼懸念了,如果密碼是明文或者MD5加密的弱密碼,網上有幾個比較好的MD5解碼網站,服務器基本上就交出去了。

用靶機簡單的介紹一下數據庫的注入和提權

打了這麼多字,也不是什麼高深的技術,只是希望能給大家提高點網絡安全意思。我說能看出來大概有數據庫注入漏洞,稍加檢測就能判斷並確認出來,如果非要說這就叫攻擊,我也就不想解釋了,敲字很累的。

相關推薦

推薦中...