Я изучаю инъекции sql и очень заинтересован в том, как это вызывать. Я написал сценарий, чтобы посмотреть, как это происходит. так вот мой код =>причина sql injection
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