Здравствуйте, дорогие друзья.
Продолжаем работать с нашим веб-сайтом Mutillidae, и попробуем определить, сколько стоблцов может отображаться на этой странице. Вспомним предыдущий пример, и он будет непосредственно связан с дальнейшими шагами. Вот наша страница, с которой мы работали в прошлом примере:
Как видим, много информации отображается в поле с ошибками.
Для дальнейших манипуляций, мы будем использовать команду «order by».
Вспомним, что команда «order by» со значением 1 выводила учетные записи, а значение 50 000 выводило ошибку.
Давайте попробуем значение «10»:
Это значение выдает ошибку. Иными словами, значение должно быть меньше.
Затестим значение «5»:
Все работает.
Теперь введем значение «6»:
Видим ошибку, а это значит, что в таблице существует 5 столбцов.
Следующим шагом будет создание собственного выражения «SELECT».
Обычно для вывода используется следующий формат: «Select * from accounts where username = '$USERNAME' and password='$PASSWORD'», но так как мы пытаемся все сделать через URL, нам придется в начале выражения прописать команду «UNION». Нам просто нужно представить, что происходит в этом приложении. Мы уже знаем некоторую информацию по таблице сайта, а именно в ней присутствует 5 записей, и выражение будет принимать вид: «union select 1,2,3,4,5». Вставим в строку URL наше выражение, которое принимает форму:
Вставляем эту команду в строку URL, и получаем вывод:
Все сработало хорошо, и это первая выборка из таблицы.
Обратите внимание на последний вывод записи. Значения 2,3,4 можно изменять в нашей команде, для более глубокого изучения базы данных.
Можем попробовать просмотреть нашу базу данных, и вместо значений 2,3,4, я введу именование столбцов:
Это выражение должно отобразить текущую базу данных.
Протестируем данную команду:
Отобразилась дополнительная учетная запись, с логином «owasp10». Это база данных (database). Вторая запись, с именованием «Password», отображает пользователя, и это «root@localhost». Третья запись отображает версию базы данных, что тоже очень важно.
Обычно, при извлечении информации из базы данных мы можем увидеть таблицы, столбцы, данные, которые содержатся в ней.
И в данной ситуации, мы находимся под пользователем «root». Иными словами, мы можем подключиться к любой базе данных, любого пользователя на этом веб-сайте. Такого в реальной жизни не бывает, так как у каждого пользователя существует собственный набор информации.
Для тестирования и наглядности, мы будем иметь ввиду, что подключаемся только к «owasp10», с именем пользователя «root@localhost».
На этом все. Всем хорошего дня!