我了解什么是基于时间的 SQL 注入,并且我了解它是如何工作的(至少它是如何被检测/利用的)。
但是,有什么特别的东西使这种类型的注入与基于布尔的盲注不同吗?
我的意思是,如果您采用以下代码:
<?php
$x = 'admin" AND SLEEP(10)#';
$y = 'superSecretPassword';
$query = sprintf('SELECT * FROM users WHERE username="%s" AND password="%s"', $x, $y);
echo $query;
?>
这导致以下输出:
SELECT * FROM users WHERE username="admin" AND SLEEP(10)#" AND password="superSecretPassword"
这对几乎所有形式的 SQLi 都是脆弱的。
我想我的问题是:
a) 为什么您会选择执行基于时间的 SQL 注入而不是任何其他注入方法,因为基于时间的注入需要这么长时间并且可以说比其他方法更容易检测到?
b)(在这种情况下运行 SQLMap 或类似工具)其他方法如何失败,但存在基于时间的 SQL 注入?