У меня есть задача: взломать этот код с помощью SQL-инъекции
Код: Выделить всё
function checkLog($login, pswrd, $conn)
{
if(!empty($login) && !empty($pswrd))
{
$result=mysqli_query($conn, "SELECT * FROM utilisateurs LEFT JOIN classes ON utilisateurs.classes_id=classes.id WHERE login_utilisateur='".addslashes($login)."' AND password_utilisateur_md5='".addslashes($pswrd)."'");
$enr=mysqli_fetch_object($result);
if(($enr->id_classes??"")==1 && $_SERVER['HTTP_HOST']!=($enr->url_classes??"")) {return false;}
elseif(mysqli_num_rows($result)>0) {return true;}
}
}
- использовать md5 для паролей — плохая идея< /li>
в запросе нет подготовки, позволяющей избежать SQL-инъекции, и добавление косых черт не является способом избежать этого.
Код: Выделить всё
$result=mysqli_query($conn, "SELECT * FROM utilisateurs LEFT JOIN classes ON utilisateurs.id_classes=classes.id WHERE login_utilisateur='".addslashes($login)."' AND password_utilisateur_md5='".addslashes($pswrd)."' AND date_sort
Я пробовал:
- некоторые классические SQL-инъекции с комментариями --: это не работает, косая черта делает свою работу.
- Я видел некоторые методы с использованием специальных символов, но ничего кажется, работает. Это связано с кодировкой?
Извините за мой несовершенный английский!
Подробнее здесь: https://stackoverflow.com/questions/793 ... -challenge
Мобильная версия