Php SQL注入无法正常工作

Php SQL注入无法正常工作,php,mysql,sql,sql-injection,Php,Mysql,Sql,Sql Injection,我正试图在本地主机上为安全测试项目创建的虚拟网站上执行SQL注入 我试图在用户名和密码字段中输入字符串”或“=”,这样它就可以绕过它并显示Login Correct,但却显示Login failed 了解SQL注入为什么不起作用有什么帮助吗 <?php mysql_connect('localhost', 'root', ''); mysql_select_db('test'); if(isset($_POST['username'])&&isse

我正试图在本地主机上为安全测试项目创建的虚拟网站上执行SQL注入

我试图在用户名和密码字段中输入字符串
”或“=”
,这样它就可以绕过它并显示Login Correct,但却显示Login failed

了解SQL注入为什么不起作用有什么帮助吗

<?php
    mysql_connect('localhost', 'root', '');
    mysql_select_db('test');

    if(isset($_POST['username'])&&isset($_POST['password'])){
       $username =$_POST['username'];
       $password = $_POST['password'];
       echo $username;
       echo $password;

       if(!empty($username)&&!empty($password)){
          $query ="SELECT id FROM users WHERE username = '$username' AND password = '$password'";
          $query_run = mysql_query($query);

          if(mysql_num_rows($query_run)>=1){
              echo 'Login Correct';
          }else{
              echo 'Login Failed';
          }
       }
    }
?>
<form action="test.php" method="POST">
   Username: <input type="text" name="username">
   Password: <input type="text" name="password">
   <input type="submit" value="Submit">
</form>

用户名:
密码:

您的注入字符串应如下所示:
用户名和密码:

' or '1' = '1
用户名(通常)或密码:(这取决于在查询中哪个先到)
#
注释查询的其余部分。

' or '1'='1' #

有关SQL注入的更多信息,您可以查看此完美url:

尝试注入此url:
'或'1'='1'-


'1'='1'
总是正确的,
--
--
是注释之后说的一切都是正确的,不会被检查。

可能是一个神奇的引号问题……有一个正确的答案。
#
很重要。否则注入必须在
密码
字段中。我发现在一些db实现(特别是mysql)中,您需要在前面有一个空格,否则它不算作注释。