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

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

 2007-05-18 09:39:43 来源:WEB开发网   
核心提示: Surname:结果是authors表被删除,造成这种结果的原因我们稍后再讲,Sql server应用程序中的高级SQL注入(2),看上去好象通过从输入中去掉单引号或者通过某些方法避免它们都可以解决这个问题,这是可行的,原因我们稍后再讲,我们更进一步地使用一个简单的ASP登陆页面来指出哪些

Surname:

结果是authors表被删除,造成这种结果的原因我们稍后再讲。

看上去好象通过从输入中去掉单引号或者通过某些方法避免它们都可以解决这个问题。这是可行的,但是用这种方法做解决方法会存在几个困难。第一,并不是所有用户提供的数据都是字符串。如果用户输入的是通过用户id来查询author,那我们的查询应该像这样:

Select id,forename,surname from authors where id=1234

在这种情况下,一个攻击者可以非常简单地在数字的结尾添加SQL语句,在其他版本的SQL语言中,使用各种各样的限定符号;在数据库管理系统JET引擎中,数据可以被使用'#'限定。第二,避免单引号尽管看上去可以,但是是没必要的,原因我们稍后再讲。

我们更进一步地使用一个简单的ASP登陆页面来指出哪些能进入SQLSERVER数据库并且尝试鉴别进入一些虚构的应用程序的权限。

这是一个提交表单页的代码,让用户输入用户名和密码:

  <HTML>
  <HEAD>
  <TITLE>Login Page</TITLE>
  </HEAD>
  <BODY bgcolor='000000' text='cccccc'>
  <FONT Face='tahoma' color='cccccc'>
  <CENTER><H1>Login</H1>
  <FORM action='process_loginasp' method=post>
  <TABLE>
  <TR><TD>Username:</TD><TD><INPUT type=text name=username size=100 width=100></TD></TR>
  <TR><TD>Password:</TD><TD><INPUT type=password name=password size=100 withd=100></TD></TR>
  </TABLE>
  <INPUT type=submit value='Submit'><INPUT type=reset value='Reset'>
  </FORM>
  </Font>
  </BODY>
  </HTML>

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL Server 应用程序

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