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

访客4年前黑客资讯460

如果分配给变量的任何动态 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

相关文章

如何同步接收微信不被发现(偷偷同步老公微信聊天记录)

如何同步接收微信不被发现(偷偷同步老公微信聊天记录)微信用的多了,想必你会遇到这样的问题。 好友上千人,窗口来回切换收发文件,工作时难免百思特网会忽略掉一些文档,等到想起来需要查看时却发现已经被微信...

足浴店都提供什么服务项目(足浴项目推荐)

足浴店都提供什么服务项目(足浴项目推荐)

随着市场的不断扩大,营销渐渐成了足浴养生行业最热的话题,不管是从未接触过足浴养生行业的营销教授,还是从未上过营销专业课的足疗技师,大家都站在自己的立场上大谈足浴养生营销。 无论是理论还是实践,无...

2019麻醉药品和精神药品目录(麻醉药品的成分)

什么叫麻醉药品? 怎么使用? 麻醉药品就是指对神经中枢系统软件有麻醉剂功效,持续应用后容易造成人体依靠和上瘾的药品。麻醉药品有121种,在其中21种在我国生产制造和应用,每个都是有不一样的制剂和商...

孩子领奖的感慨句子 分享孩子领奖的心情说说短语

哭过过多回了。获奖的情况下高兴哭,听小朋友们说感语掏心窝子打动哭,看她们巡回演唱情况下是兴奋的哭,尽管有很多不舒服的情况下,可是如今感觉每一刻全是幸福快乐的。针对父母而言小孩兑奖的那一瞬间便是他们的自...

什么食物补钙(常见的7种补钙食物)

大家平常吃这些物品针对人体是较为有益处呢,尤其是针对补钙补锌有益处呢,下边就给大伙儿详细介绍几类食材,这种食材,他们的补钙补锌实际效果是非常棒的,并且实际效果听说比牛乳也要好,那麼静静的等待呢?让我们...

如何联系黑客交谈

Spring产品介绍2019年4月15号,gitea曾爆出过一个漏洞,恰逢当时对这个漏洞比较好奇就着手去研究了一下,漏洞的描述是这样的:由于Win8 和 Win 10不受CVE-2019-0708漏洞...