2014-06-25 61 views
1

我有我的新網站由私營公司管理。這是什麼類型的數據庫,可能是sql注入?

今天早上,我不小心把在URL(「)雙引號,成爲如下錯誤:

網址:http://domain.com/sys.aspx?page=5&search=1"

Server Error in '/' Application. 

Syntax error near '"' in the full-text search condition '1"'. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Syntax error near '"' in the full-text search condition '1"'. 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 


[SqlException (0x80131904): Syntax error near '"' in the full-text search condition '1"'.] 
    System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +212 
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +245 
    System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2811 
    System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +58 
    System.Data.SqlClient.SqlDataReader.get_MetaData() +112 
    System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +6281668 
    System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +6282737 
    System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +424 
    System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +28 
    System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +211 
    System.Data.SqlClient.SqlCommand.ExecuteReader() +117 
    Pazar3.list.Page_Load(Object sender, EventArgs e) in E:\mudi\ker_ss\Solution\trunk\sys.aspx.cs:119 
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42 
    System.Web.UI.Control.OnLoad(EventArgs e) +132 
    System.Web.UI.Control.LoadRecursive() +66 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428 

Version Information: Microsoft .NET Framework Version:2.0.50727.4984; ASP.NET Version:2.0.50727.4971 

我的問題是什麼樣的數據庫是這樣的,可能是SQL INJECTION ?

+2

什麼樣的數據庫並不重要。看起來像基於正在使用的對象的SQL Server。 * *重要的是,從你如何發現問題的描述來看,這個*是一個SQL注入漏洞。它應該立即修復。 – David

+0

我想知道什麼樣的數據庫,我只是打電話給他們,他們告訴我'我們使用mysql'。那是對的嗎? – user3776781

回答

1

的風險我只是給他們打電話,他們告訴我,「我們使用了MySQL」。那是對的嗎?

他們可能在他們的站點使用MySQL和SQL Server。不太可能 - 但可能

我認爲他們更可能犯了一個錯誤。我聽說一些IT人員在實際使用Microsoft SQL Server時會說「MySQL」。

錯誤消息Syntax error near 'XXXX' in the full-text search condition 'YYYY', 看起來像是Microsoft SQL Server錯誤消息。如果search StackOverflow for that error message(減去特定模式),則只會發現Microsoft SQL Server問題。

您可以使用CONTAINS()函數在模式中使用雙引號,因此您可以搜索短語(請參閱示例here)。我認爲CONTAINS()函數不喜歡它,當你的模式包含不平衡的雙引號時,它會拋出一個異常。

此外,類System.Data.SqlClient似乎是一個.NET類,這是更常見的是使用.NET和Microsoft SQL Server後端,而不是一個MySQL後端(儘管後者是可能的,它只是不作爲共同)。

MySQL也具有全文搜索功能,但如果在搜索模式中給它一個不平衡的雙引號,MySQL 不會引發錯誤

他們可能會將MySQL用於其網站的其他部分,但是您看到的錯誤似乎是Microsoft SQL Server錯誤。

這是一個SQL注入漏洞嗎?不必要。他們的應用程序可能會使用準備好的語句和搜索模式的查詢參數來安全地傳遞模式。因此,SQL注入本身可能沒有風險(例如,用戶不能提交一個字符串,使得查詢除了搜索模式之外做其他事情),但是應用程序不會阻止用戶提交無效的搜索模式這會導致例外。

簡而言之,我們無法從錯誤消息中確定是否是SQL注入漏洞,因爲即使查詢是使用參數執行的,也可能會得到相同的錯誤。

0

這是Microsoft SQL客戶端談起MS SQL服務器

是的,你已經證明了SQL注入,到全文烤焦ch表達式,而不是SQL語句 - 這可能同樣糟糕,但我不能說。

0

您輸入的URL將參數傳遞給SQL服務器。

名爲Search的參數正在傳遞值1,直到您意外鍵入代碼不知道如何處理的雙引號。

您可能會輸入「search = 1; DROP TABLE Users; - 」,如果鱈魚未被安全寫入,則可能會丟棄名爲users的表。

所以是的,這可能是在SQL注入攻擊

相關問題