我发现有人试图通过密码恢复表单攻击我们公司的网站.攻击是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\\\'--'
无法谷歌任何与此次攻击相关的内容.
希望有人知道这是什么类型的攻击以及攻击者在这里尝试做什么?
这是一种基于时间的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
),页面将会延迟.通过使用子字符串迭代每个字符,他们可以慢慢地提取您的数据.