查看错误日志,我发现了很多对 URL 包含的 Web 应用程序的请求:
/if(now()=sysdate(),sleep(10),0)/*'XOR(if(now()=sysdate(),sleep(10),0))OR'"XOR(if(now()=sysdate(),sleep(10),0))OR"*/
我读到这可能是对我们不使用的用 PHP 开发的网站的攻击的一部分。我们还使用 ORM 来查询我们的数据库。
那么这是一次 SQL 注入尝试吗?
查看错误日志,我发现了很多对 URL 包含的 Web 应用程序的请求:
/if(now()=sysdate(),sleep(10),0)/*'XOR(if(now()=sysdate(),sleep(10),0))OR'"XOR(if(now()=sysdate(),sleep(10),0))OR"*/
我读到这可能是对我们不使用的用 PHP 开发的网站的攻击的一部分。我们还使用 ORM 来查询我们的数据库。
那么这是一次 SQL 注入尝试吗?
这很可能是一个盲目的 SQL 注入,通过检查您的服务器是否需要指定的时间或更多时间来回复请求来测试您是否容易受到 SQL 注入的攻击。这实际上并没有进行任何数据编辑,也没有公开任何内容;它只是检查你是否容易受到攻击。
还值得注意的是,这专门针对 MySQL 数据库,因为if
和sleep
语法是该数据库引擎的语法。
如果攻击是孤立的,您可能会被准备大规模攻击的自动漏洞扫描程序“探测”,因此如果您的 web 应用程序没有漏洞,您无需担心。
但是,如果您收到更多具有不同攻击模式的怪异请求,您可能会成为这些攻击者的特定目标,并且应该采取措施阻止所有可能成功的攻击。
有关更多信息,请参阅基于时间的盲 SQL 注入攻击。
您在此处发布的数据似乎与攻击者可能用于查找盲 SQL 注入问题的数据相似。
发现这些问题的常用技术是进行条件测试,如果为真,则会导致超时或休眠功能运行。这样,攻击者可以通过观察站点响应需要多长时间来判断它是否成功(尽管值得注意的是,如果站点根本不响应或响应缓慢,这种技术可能会有点错误,无关的,原因)
你提到的代码似乎是在做那种逻辑测试,然后是一个 sleep 语句,所以它很可能是利用 SQL 注入的尝试。某些类型的攻击者会将这些攻击广泛用于寻找命中,因此它可能不是非常有针对性的攻击,因此不太可能在您的网站上运行。