Skip to main content

SQL-инъекции

Позволяет вмешиваться в запросы, которые приложение делает к своей базе данных. В частности, могут приводить к:

  • Извлечению данных и возможности исследования базы данных
  • Модификации информации в базе данных (удалению, добавлению, изменению)
  • Обходу логики
  • Обходу механизмов авторизации и аутентификации
  • Чтению файлов ОС
  • Выполнению команд ОС
  • Отказу в обслуживании

Показателем наличия инъекции могут являться ошибки, вызванные наличием управляющих символов (' " \). 

Комбинирование запросов:

Необходимо в следующем запросе получить такое же количество колонок. Поэтому сначала нужно узнать количество колонок. Используется технология добавления в запрос ORDER BY 1 то есть сортировка по номеру колонки. При ошибке понимаем количество колонок.

Например 8 колонок. Далее при запросе UNION SELECT 1.2.3.4.5.6.7.8 получим какой столбец попадает в какое поле формы. Затем вместо нужной цифры можно подставить нужный запрос, 

Стоит ставить символ комментария после строки запроса -- -

http://192.168.1.199:1337/receipt.php?orderID=-1 union select 1,2,3,4,5,6,7,8 -- -

Цифра 5 попала в поле Comments. Поэтому попробуем вывести в это поле название таблицы. 

-1 union select 1,2,3,4,table_name,6,7,8 from information_schema.tables -- -