我正在学习sql注入并非常感兴趣如何导致此问题。 我已经写了脚本来看看它是怎么回事。所以这里是我的代码=>导致sql注入
if (isset($_POST['act'])){
if ($connection = mysqli_connect($var['host'],$var['user'],$var['password'],$var['database'])){
if (mysqli_connect_errno()==0){
$username = $_POST['username'];
$password = $_POST['pswd'];
if ($result = mysqli_query($connection,"SELECT username,password FROM login WHERE username='" . $username . "' AND password='" . $password . "'")){
if (mysqli_num_rows($result)){
header("Location: http://localhost/default.php");
} else {
$res = "Invalid Credentials ...";
}
}
}
}
}
<form name="action" method="post" action="index.php">
Username:<input type="text" name="username" size="12"><br>
Password:<input type="password" name="pswd" size=12><br>
<input type="submit" name="act" value="Login">
</form>
我写这样的形式,但没有用户名和密码中的形式=>一些”或‘1’=‘发生
1’
我很感兴趣如何使SQL注入打破这个脚本,并没有有效凭证重定向到如default.php(当然内标脚本)
谢谢...
什么,我是指,它不是写“无效凭证”,也没有重定向。我认为这是发生SQL错误,但它不能显示在脚本 – DaHaKa
你有没有尝试输入你的用户名为“或1 = 1”,并设置你的密码只是在你的窗体中? –
在这种情况下,您至少应该在代码顶部添加'error_reporting(E_ALL);',以便我们可以看到您的代码返回的任何错误 – Mchl