1
mysql> select * from users where id=0;
Empty set (0.00 sec)
mysql> select * from users where id=0 and sleep(5);
Empty set (0.00 sec)
mysql> select * from users where id=0 and benchmark(1000000,sha1(1));
Empty set (0.39 sec)
mysql> select * from users where id=0 xor sleep(5);
Empty set (1 min 5.02 sec)
id = 0の場合、ユーザーは存在しません。 2番目のクエリが5秒間スリープ状態にならないのはなぜですか? benchmark(1000000,sha1(1))
またはxor sleep(5)
を使用すると、なぜスリープ状態になるのですか?最初のresutlがfalseの場合、mysql sleepは動作しません。
ありがとうございました。
ありがとう、私はSQL注入をテストしている、睡眠時間の結果は私を混乱させる。 'select * from id = 0そして(select * from(select sleep(5))x)'、なぜこのクエリは5秒間スリープ状態になるのですか?エンジンはすでに答えを知っているはずです。 – user1773219
いいえ、そうではありません。 '(SELECT * FROM(SELECT ...)'を使用すると、内部クエリsleep(5)が最初に評価され、その結果は 'WHERE id = 0'が発見される前に暗黙的に" x "何にもマッチしない –