Это внутренний PHP-код, в котором я буду тестировать уязвимость.
if(isset($_POST["login"]) && isset($_POST["password"])){
$login = $_POST["login"];
$password = $_POST["password"];
$sql="SELECT * FROM users WHERE login='$login' AND password='$password'";
$result= mysqli_query($conn, $sql);
if(mysqli_num_rows($result) != 0){
echo "<h1>Login Success!</h1>";
$row = mysqli_fetch_array($result);
extract($row);
echo "Welcome , ".$login;
}
Этот код я буду вводить в поле логина.
' UNION SELECT * FROM users --
Кажется, я могу войти в систему, но что мне нужно сделать, чтобы пароли отображались в сообщении об ошибке или что-то на веб-странице после инъекции?
Как и тот запрос, который вы, ребята, рекомендует добавить в код для извлечения паролей, информации о базе данных, всех таблиц и т. Д.
Обратите внимание, что у меня ограниченные знания SQL, поэтому я могу не знать ни одного запроса для выполнения этой задачи.
Предполагается, что внутренний или серверный PHP-код также допускает выполнение нескольких запросов. Я хотел бы узнать решения о том, как добиться извлечения паролей с помощью внедрения нескольких запросов?
Что-то вроде приведенного ниже кода, который я могу обновить в деталях пользователя, при условии, что я знаю, что там есть пользователь-администратор, когда я вводю его в поле для входа
' OR 1 = 1; UPDATE users SET password='stackOverFlow' WHERE login='admin' --
Порекомендуйте мне оба решения по отображению паролей или полезной информации на веб-странице с помощью простого введения кода в поля входа в систему вместо URL-инъекции, если сервер может выполнить запрос нескольких SQL или сервер не может выполнить несколько запросов.