我试图了解有关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
答案 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;#
密码为空。