WEB开发网
开发学院数据库MSSQL Server SQL 安全性: 新型 SQL 截断攻击和防御方法 阅读

SQL 安全性: 新型 SQL 截断攻击和防御方法

 2009-02-10 10:23:52 来源:WEB开发网   
核心提示: Figure2Delimiting Strings with REPLACE create procedure sys.sp_attach_single_file_db@dbname sysname,@physname nvarchar(260)asdeclare @execstring

SQL 安全性: 新型 SQL 截断攻击和防御方法Figure2Delimiting Strings with REPLACE

create procedure sys.sp_attach_single_file_db
  @dbname sysname,
  @physname nvarchar(260)
as
  declare @execstring nvarchar (4000)
  -- some code --
  select @execstring = ‘CREATE DATABASE ‘
    + quotename( @dbname , ‘[‘)
    + ‘ ON (FILENAME =‘
    + ‘‘‘‘
    + REPLACE(@physname,N’’’’,N’’’’’’)
    + ‘‘‘‘
    + ‘ ) FOR ATTACH’
  EXEC (@execstring)
  -- some code --
GO

SQL 注入漏洞

接下来介绍存储过程,它可在验证了当前密码后更改用户帐户的密码(参见图 3)。

SQL 安全性: 新型 SQL 截断攻击和防御方法Figure3Changing a Password

CREATE PROCEDURE sp_setPassword
  @username varchar(25),
  @old varchar(25),
  @new varchar(25)
AS
DECLARE @command varchar(100)
SET @command=
  ‘update Users set password=‘‘‘ + @new +
  ‘‘‘ where username=‘‘‘ + @username +
  ‘‘‘ AND password=‘‘‘ + @old + ‘‘‘‘
EXEC (@command)
GO 

快速浏览存储过程,会发现没有任何参数对单引号进行转义,这同样容易受到 SQL 注入攻击。攻击者可以传递几个特定的参数,并将 SQL 语句修改为:

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

Tags:SQL 安全性 新型

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