这是什么样的SQL注入?

时间:2013-12-17 02:30:08

标签: security sql-injection code-injection

我发现有人试图通过密码恢复表单攻击我们公司的网站。 攻击是SQL或代码注入。它看起来像这样:

'; if (db_name()))<48) waitfor delay \\\'00:00:04\\\'--'

上述陈述有几种变体,例如

'; if (Len((db_name()))=62) waitfor delay \\\'00:00:04\\\'--'
'; if (system_user))<48) waitfor delay \\\'00:00:04\\\'--'
'; if (Len((system_user))=63) waitfor delay \\\'00:00:04\\\'--'

无法解决与此次攻击有关的任何事情。

希望有人知道这是什么类型的攻击以及攻击者在这里尝试做什么?

2 个答案:

答案 0 :(得分:6)

这是一种基于时间的SQL注入攻击。

攻击者通过waitfor delay加载页面的速度来了解查询是否为真。如果为真,那么将有4秒的延迟。

接下来,攻击者可以使用子字符串从数据库中当前数据库用户有权访问的任何列中缓慢提取数据。

示例:

首先字符= a

 if(ASCII(SUBSTRING((SELECT password FROM admin), 1, 1))=97) waitfor delay ...

第二个字符= b

if(ASCII(SUBSTRING((SELECT password FROM admin), 1, 2))=98) waitfor delay ...

如果列密码的第一个字母是'a'(ASCII('a') === 97),页面将会延迟。通过使用子字符串迭代每个字符,他们可以慢慢地提取您的数据。

答案 1 :(得分:1)

看起来他们正试图找出有关您的数据库的信息。

我在此网站上发现了有关此类攻击的信息: http://searchsqlserver.techtarget.com/feature/Time-delay-SQL-injections