恢复别人聊天记录_找我们,先查询后交费 聊天记

访客3年前黑客资讯437

如果分配给变量的任何动态 Transact-SQL 比为该变量分配的缓冲区大,那么它将被截断。如果攻击者能够通过将意外长度的字符串传递给存储过程来强制执行语句截断,则该攻击者可以操作该结果。例如,以下脚本创建的存储过程容易受到由截断启用的注入攻击。 CREATE PROCEDURE sp_MySetPassword @loginname sysname, @old sysname, @new sysname AS -- Declare variable. -- Note that the buffer here is only 200 characters long. DECLARE @command varchar(200) -- Construct the dynamic Transact-SQL. -- In the following statement, we need a total of 154 characters -- to set the password of 'sa'. -- 26 for UPDATE statement, 16 for WHERE clause, 4 for 'sa', and 2 for -- quotation marks surrounded by QUOTENAME(@loginname): -- 200 – 26 – 16 – 4 – 2 = 154. -- But because @new is declared as a sysname, this variable can only hold -- 128 characters. -- We can overcome this by passing some single quotation marks in @new. SET @command= 'update Users set password=' + QUOTENAME(@new, '''') + ' where username=' + QUOTENAME(@loginname, '''') + ' AND password = ' + QUOTENAME(@old, '''') -- Execute the command. EXEC (@command) GO 通过向 128 个字符的缓冲区传递 154 个字符,攻击者便可以在不知道旧密码的情况下为 sa 设置新密码。 EXEC sp_MySetPassword 'sa', 'dummy', '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012''''''''''''''''''''''''''''''''''''''''''''''''''' 因此,应对命令变量使用较大的缓冲区,或直接在 EXECUTE 语句内执行动态 Transact-SQL。使用 QUOTENAME(@variable, '''') 和 REPLACE() 时的截断 如果 QUOTENAME() 和 REPLACE() 返回的字符串超过了分配的空间,该字符串将被自动截断。以下示例中创建的存储过程显示了可能出现的情况。 CREATE PROCEDURE sp_MySetPassword @loginname sysname, @old sysname, @new sysname AS -- Declare variables. DECLARE @login sysname DECLARE @newpassword sysname DECLARE @oldpassword sysname DECLARE @command varchar(2000) -- In the following statements, the data stored in temp variables -- will be truncated because the buffer size of @login, @oldpassword, -- and @newpassword is only 128 characters, but QUOTENAME() can return -- up to 258 characters. SET @login = QUOTENAME(@loginname, '''') SET @oldpassword = QUOTENAME(@old, '''') SET @newpassword = QUOTENAME(@new, '''') -- Construct the dynamic Transact-SQL. -- If @new contains 128 characters, then @newpassword will be '123... n -- where n is the 127th character. -- Because the string returned by QUOTENAME() will be truncated, -- it can be made to look like the following statement: -- UPDATE Users SET password ='1234. . .[127] WHERE username=' -- other stuff here SET @command = 'UPDATE Users set password = ' + @newpassword + ' where username =' + @login + ' AND password = ' + @oldpassword; -- Execute the command. EXEC (@command) GO 因此,以下语句将把所有用户的密码都设置为在前面的代码中传递的值。 EXEC sp_MyProc '--', 'dummy', '12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678' 使用 REPLACE() 时,可以通过超出分配的缓冲区空间来强迫字符串截断。以下示例中创建的存储过程显示了可能出现的情况。 CREATE PROCEDURE sp_MySetPassword @loginname sysname, @old sysname, @new sysname AS -- Decl

相关文章

在哪里可以找黑客修改学历-2011黑客ko是谁(2011年黑客ko)

在哪里可以找黑客修改学历-2011黑客ko是谁(2011年黑客ko)

在哪里可以找黑客修改学历相关问题 2008黑客事件杨相关问题 彩虹六号为什么黑客 qq解冻高手联系方式(灌篮高手qq头像)...

比私域流量更重要的是,私域流量的质量

比私域流量更重要的是,私域流量的质量

直播固然是一种投入产出比更可见的营销方法,但不能将直播当成万能药,没有一连的内容创作,没有一连的流量运营本领,必然做欠好直播。假如能将私域流量的恒久运营本领与直播营销团结,则可以或许让直播发挥更高效的...

工信部将建“谢绝来电”平台 向全社会征集意见

人民网北京9月1日电 (易潇)8月31日,工业和信息化部发布《通信短信息和语音呼叫服务管理规定(征求意见稿)》(下文简称:意见稿),并向社会公开征求意见。意见稿明确,任何组织或个人未经用户同意或者请求...

苹果隐藏功能(苹果隐藏功能有哪些)

苹果隐藏功能(苹果隐藏功能有哪些)

本文导读目录: 1、苹果手机如何把app隐藏起来 2、苹果隐藏功能怎么用 3、苹果手机隐藏功能在哪里 4、iPhone除了可以称重,还有哪些隐藏的功能? 5、苹果有什么隐藏功能 6...

英国酒店有哪些品牌(英国著名酒店介绍)

英国酒店有哪些品牌(英国著名酒店介绍)

当我们去英国十大著名景区游玩的时候,一般会事先订好酒店,然而英国的酒店和国内是有些不同的,国内通常情况会提供个人洗漱用品,那么英国酒店有洗漱用品吗?答案是一般不提供,甚至五星级的酒店都没有这样的服...

罗技G502鼠标驱动如何设置灵敏度和宏,罗技G502鼠标驱动设置灵敏度和宏

朋友们大家了解罗技G502鼠标驱动怎么设置敏感度和宏呢?今日我很愿意与大伙儿共享罗技G502鼠标驱动设定敏感度和宏的方式,很感兴趣的能够来掌握掌握哦。       朋友们大家了解罗技G502鼠标驱动怎...