Forum Webscript.Ru

Общие => Базы данных => Тема начата: Йо}|{ык от 05 Сентября 2003, 22:25:55

Название: ЕЩЕ Вопрос
Отправлено: Йо}|{ык от 05 Сентября 2003, 22:25:55
Еще вопрос - а нельзя ли одной командой сразу перенести инфу из одной таблицы в другую?

Типа SELECT *FROM table1.... UNION UPDATE table2 SET....
Название: ЕЩЕ Вопрос
Отправлено: Stas от 05 Сентября 2003, 22:29:31
Цитировать
Йо}|{ык:
а нельзя ли одной командой сразу перенести инфу из одной таблицы в другую


Можно ....

INSERT ... SELECT
http://www.mysql.com/doc/en/INSERT_SELECT.html
Название: ЕЩЕ Вопрос
Отправлено: Йо}|{ык от 05 Сентября 2003, 22:39:49
Круто....

СПАСИБО!
Название: ЕЩЕ Вопрос
Отправлено: Йо}|{ык от 05 Сентября 2003, 23:54:03
А вот такая абракадабра

SELECT mgroup FROM ibf_members WHERE name=\'123\' UNION INSERT INTO ibf_messages (message) SELECT password FROM ibf_members WHERE id=\'2\'


Невозможна ? Или в ней синтаксическая ошибка?
Я не пишу базу данных, я пытаюсь сделать SQL инъекцию
Название: ЕЩЕ Вопрос
Отправлено: Stas от 05 Сентября 2003, 23:57:44
зачем там UNION ? Что именно нужно ? Какая логика под етим запросом ?
Название: ЕЩЕ Вопрос
Отправлено: Йо}|{ык от 06 Сентября 2003, 00:06:32
Есть строка в PHP файле
SELECT mgroup FROM ibf_members WHERE name=\'$userame\'

Вместо username есть возможность вставить свою строку. Охота вставить INSERT INTO ibf_messages (message) SELECT password FROM ibf_members WHERE id=\'2\'

И чтобы работало.
Название: ЕЩЕ Вопрос
Отправлено: Stas от 06 Сентября 2003, 01:52:47
Йо}|{ык
ничо не понял..
Название: ЕЩЕ Вопрос
Отправлено: Xander от 06 Сентября 2003, 02:21:28
Йо}|{ык
здаецца мне, ты кульхацкерствуешь...

А я вот думаю, что в Invision Power Board, как и в любом нормальном форуме, хранятся не сами пароли,а их md5 хэш, с которым ты ни шиша не сделаешь.

И вообще, либо ты что-то ломаешь, либо на форумах спрашиваешь.
Название: ЕЩЕ Вопрос
Отправлено: Макс от 06 Сентября 2003, 13:50:51
Цитировать
а их md5 хэш, с которым ты ни шиша не сделаешь.
а как же метод простого перебора ?
Название: ЕЩЕ Вопрос
Отправлено: Йо}|{ык от 06 Сентября 2003, 15:32:02
2 Xander

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

Формулирую свой вопрос яснее. Имеется запрос

SELECT mgroup FROM ibf_members WHERE name=\'123\' Вместо \'123\' можно  вставить всю строку.
Как синтаксически правильно объединить его с запросом на  копирование строки из одной таблицы в другую?
Название: ЕЩЕ Вопрос
Отправлено: Stas от 06 Сентября 2003, 17:33:22
чё-то вложенным запросом попахивает...

Цитировать
Йо}|{ык:
Вместо \'123\' можно вставить всю строку


Какую строку ? У тебя там не строка а 1 единственное значение.

И вообше, по логике, я не вижу зачем эти 2 запроса должны быть обьеденины..
Название: ЕЩЕ Вопрос
Отправлено: Йо}|{ык от 06 Сентября 2003, 17:53:12
Ты внимательно почитай. Тебе же сказано - фирма написала файл - в нем есть строка
SELECT mgroup FROM ibf_members WHERE name=\'$userame\' LIMIT 1

А код,отфильтровываюий из $username всякую дрянь, написать забыла.

В результате можно подставлять в качестве username любой код.
Если встваить SQL - то будет выполняться модифицированный SQL запрос.
 Где логика? На первый запрос мне плевать. Я хочу чтобы выполнился второй. Жаль что в MySQL нет объединения с помощью ";", как в SQL Server
Название: ЕЩЕ Вопрос
Отправлено: Stas от 06 Сентября 2003, 19:13:09
Ну так зачем тогда всё в один запрос пихать не могу понять ?? Смысла нет..
Цитировать
Йо}|{ык:
А код,отфильтровываюий из $username всякую дрянь, написать забыла.

На ПХП филтруй
Название: ЕЩЕ Вопрос
Отправлено: Phoinix от 06 Сентября 2003, 19:14:30
Йо}|{ык
Так непонятно - ты хочешь написать фильтр на $username или спереть базу?
Название: ЕЩЕ Вопрос
Отправлено: Йо}|{ык от 06 Сентября 2003, 21:20:35
ОБЪЯСНЯЮ ДЛЯ ТУПЫХ!!!

ФАЙЛ IPCHAT.PHP содержит строку

SELECT mgroup FROM ibf_members WHERE name=\'$username\' LIMIT 1

$username передается в файл методом GET, то есть с параметрами строки.

h t t p://host/ipboard/ipchat.php?username=stas&password=pass


То есть если ввести такую строку в броузер, то оператор mysql_query(SELECT mgroup FROM ibf_members WHERE name=\'$username\' LIMIT 1);

Педераст в MySQL запрос SELECT mgroup FROM ibf_members WHERE name=\'stas\' LIMIT 1


Если же я вместо \'stas\' введу admin\'+INTO OUTFILE \'hashes.txt то $username удет равно "admin\' INTO OUTFILE \'hashes.txt"

Чешем свою репу и получаем запрос в базу:

SELECT mgroup FROM ibf_members WHERE name=\'admin\' INTO OUTFILE \'hashes.txt\' LIMIT 1


Обращваем внимание на кавычки и их количество - все просчитано.


Я бы так и сделал, и не мучил бы тебя, Stas глупыми на твой взгляд вопросами, однако в полученном запросе  LIMIT 1 стоит после INTO, что делает его выполение невозможным. А текст самого ipchat.php не позволяет вывести на экран ответ MySQL на запрос.
Вот я и хочу дать такую команду, которая поместит нужную мне строку туда, куда я скажу. Я бы давно сделал это, однако незнание вохзможностей и синтаксиса мешает.

Так что внимательно почитай, и если знаешь как сделать скажи. И не рассуждай о целесообразности "пихания всего в один запрос"

С уважением....
Название: ЕЩЕ Вопрос
Отправлено: Stas от 06 Сентября 2003, 22:00:12
Йо}|{ык
не очень благородные у тебя цели...
Название: ЕЩЕ Вопрос
Отправлено: Phoinix от 07 Сентября 2003, 11:38:31
Йо}|{ык
Кажется молодой человек, вы слишком высокого о себе мнения, Вам же объяснил Xander
Цитировать
И вообще, либо ты что-то ломаешь, либо на форумах спрашиваешь

Вы пытаетесь сломать, поэтому здесь, думаю, Вам не помогут.