SQL注入似乎不起作用

时间:2016-03-30 16:37:31

标签: php mysql

我试图了解有关SQL注入的更多信息。我创建了一个易受SQL注入攻击的代码,看看它是如何工作的,但是当我尝试输入一些代码时,它似乎不起作用?它只刷新页面。 这是代码         

        $query = "Select * from users where UserName = ''OR DROP table 'users'"/*$name' AND UserPassword = '$pw'""*/;

        $result = mysql_query($query);

        while($row = mysql_fetch_array($result))
        {
            $id = $row['UserId'];
            $tempName = $row['UserName'];
            $tempPassword = $row['UserPassword'];
        }

        if($name == $tempName && $pw == $tempPassword)
        {

            session_Start();
            $_SESSION["id"] = $id;
            header("Location: adminhome.php");
            exit;
        }
        else
        {

        }
    }
    if(isset($_POST['btnDestroy']))
    {
        session_unset($_SESSION["id"]); 
        session_destroy($_SESSION["id"]); 
    }
?>

以下是我的SQL注入尝试列表:

1' OR '1'='1' LIMIT 0,1;#

'or drop table 'users

Username: '- Password: '

Username: '-0||' Password: 1

2 个答案:

答案 0 :(得分:2)

问题是我们不知道你是如何构建查询的。

例如,如果您正在使用

$query = "Select * from users where UserName = '".UserName.
                             "' AND Password = '".Password."'";

然后将变量UserName设置为

UserName = "' OR 1=1; DROP TABLE table 'users'; //"
           ^^                                 ^^^^   
          close string and create valid OR 
                                             close statement and use // to comment the rest

答案 1 :(得分:0)

你可以制作

SELECT * FROM users WHERE UserName='1' OR '1'='1' LIMIT 0,1;# AND UserPassword=''

用户:

1' OR '1'='1' LIMIT 0,1;#

密码为空。