Здравствуйте, дорогие друзья.
Рассмотрим ситуацию, при которой я сталкиваюсь при тестировании на проникновение, примерно в 50% сайтов.
Перейдем на страницу веб-приложения DVWA, которое называется «SQL Injection», и рассмотрим уже использованное нами выражение, только измененное: «+uNiOn/**/sEleCt/**/table_name, 2+fRom information_schema.tables%23». Вставим это выражение в адресную строку URL:
Все сработало, и мы видим все таблицы, которые существуют в этой базе данных.
Хотелось бы затронуть один вариант развития событий, а именно, при уязвимом веб-сайте происходит запуск выражения, то Вы можете видеть только один результат, в конкретный момент времени. Это происходит из-за того, что страница запрограммирована отображать один результат.
Можем рассмотреть это наглядно, на низком уровне безопасности, изменив код в уязвимой машине Metasploitable 2, в частности DVWA.
Переходим на машину Metasploitable 2, и отредактируем файл на низком уровне безопасности, чтобы потом вернуться и увидеть результат наших манипуляций.
Metasploitable 2 выгдядит вот так:
Введем команду «sudo nano /var/www/dvwa/vulnerabilities/sqli/source/low.php»:
Nano — это удобный текстовый редактор, и далее идет путь к файлу «low.php». Осталось ввести пароль администратора и начать просматривать код:
Нам нужно поработать с циклом while, и закомментировать его. Этот цикл проходит по всем символам, что нам не нужно.
Закомментируем начало цикла while, и его конец:
Вам не обязательно вдаваться в подробности кода, если Вы не программист, так как нас интересует тестирование на проникновение.
Для сохранения файла, нужно нажать комбинации клавиш: Ctrl+O, далее Enter и Ctrl+X для выхода из редактора.
Переходим в DVWA, и протестируем то же выражение:
Выражение не работает, из-за наших исправлений в коде.
Произошел вывод записи администратора.
Продолжим исследование и введем вместо цифры 1, значение -1, и посмотрим, что получится:
Вновь отображается один результат. Это происходит потому, что мы откорректировали код на этом уровне безопасности.
Обратите внимание, что на сервере, Вы можете выбрать любое SQL-выражение. Мы можем выбрать определенные записи в базе данных.
Попробуем перебрать все таблицы на веб-сайте. Воспользуемся новым выражением «limit». Выражение примет вид:«1'+uNiOn/**/sEleCt/**/table_name, 2+fRom information_schema.tables+limit+1,2%23».
Сущность выражения limit заключается в выборке между первым и вторым значением.
Введем значение в адресную строку URL:
Видим отображение другой таблицы.
Таким образом, можно изменять значение таблиц, сделав выборку в базе данных.
Также можем воспользоваться выражением «where». Запись примет вид: «1'+uNiOn/**/sEleCt/**/table_name, 2+fRom information_schema.tables+where+table_schema='dvwa'+limit+1,2%23»:
Мы можем перебрать все таблицы, используя выражение «limit».
На этом все. Всем хорошего дня!