2

我在客户端提供的块中有以下代码:

$user = $_POST['user'];

$sql = "SELECT * FROM users WHERE user = '" . $user . "'";

$dbh->query($sql);

此外,此代码当前不会在屏幕上回显任何内容,因此如果我选择多个用户,它对我没有帮助。这不会在视觉上向客户展示任何东西。

对我来说很明显这很容易注入,但我找不到向客户展示这将如何工作的方法。我尝试删除表格,但->query()似乎一次只允许一个语句。

到目前为止,这是我尝试过的, ' OR 1=1; DROP TABLE users; SELECT * FROM users WHERE 1='1但这不起作用。

4

4 回答 4

2

SLEEP(1000)您可以多次注入以耗尽连接池。或者您可以使用非常复杂的表达式来提高 CPU 负载。

如果有很多派生表,您甚至可能会耗尽内存。

于 2012-06-27T20:55:43.113 回答
1

您在审查数据库查询方面做得还不够。脚本中的方法(没有回声)称为盲注,它仍然很有可能实现接管或注入。

尝试使用自动 SQL 注入工具,例如SqlMap。您会对查询结果感到惊讶。您还可以针对您的查询尝试一些来自unixwiz的示例。虽然这些都是针对他的目标的,但其背后的所有理论和证据都是合理的。

于 2012-06-27T20:43:39.113 回答
0

注入以下内容怎么样:

"' OR 1'"
于 2012-06-27T20:29:01.130 回答
0

截断;

' or 1=1; truncate table users; --

降低 ;

 ' or 1=1; drop table users; --

我认为可以做到。

于 2012-06-27T20:59:04.417 回答