benchmark()类似MySQL函数,可以在SQL注入中使用吗?

时间:2014-05-06 05:45:01

标签: mysql sql-injection

我们正在连续进行sql注入并导致服务器负载过重。使用benchmark()函数的sql注入语句。
benchmark()类似MySQL函数,可以在SQL注入中使用吗?

1 个答案:

答案 0 :(得分:0)

BENCHMARKSLEEP等耗时的函数用于利用SQL注入,其中注入的结果不会被攻击者直接看到,因此称为盲SQL注入

以类似于基于布尔的技术的方式,注入耗时的函数BENCHMARK / SLEEP并根据指定的条件影响服务器的响应:

… IF(EXISTS (SELECT 1 FROM mysql.users WHERE username='root' AND SUBSTR(password, 3, 1)='x'), SLEEP(5), 1) …

如果root密码的第三个字符为IF,则注入SLEEP(5)将调用x,从而将服务器的响应时间延长5秒。

因此,如果响应时间比平均响应时间长五秒,则攻击者可以断定在根密码的第三个位置有x。通过这种方式,攻击者可以逐个字符地重建root的密码。