PDA

Просмотр полной версии : Вредный скуль


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
↑ (https://antichat.live/posts/3869376/)
Вывод ошибок отключен. Я тоже не знаю, какого вида запрос, вот и мучаюсь.


как 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
↑ (https://antichat.live/posts/3869495/)
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
↑ (https://antichat.live/posts/3869501/)
попробуйте 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
↑ (https://antichat.live/posts/3869501/)
count(info) = 1?


да

faza02
18.07.2015, 12:04
↑ (https://antichat.live/posts/3869530/)
да


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


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

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

b3
18.07.2015, 12:17
скинь ты уже скуль толпой поковыряем, ну или в пм

user6334
18.07.2015, 15:32
↑ (https://antichat.live/posts/3869793/)
скорее всего, переменная попадает еще в условие


если бы там еще какое-нибудь условие было, то так бы, к примеру, ничего не отображалось: 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
↑ (https://antichat.live/posts/3869895/)
Ну а почему мои SQL-конструкции (см. пост #1) таким образом работают? Есть хотя бы какие-то предположения?


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

user6334
18.07.2015, 18:39
↑ (https://antichat.live/posts/3869908/)
у меня вообще 8 колонок вышло а не 7 как у тебя


да ладно? )


↑ (https://antichat.live/posts/3869381/)
сделайте запрос SELECT info FROM information_schema.processlist и посмотрите

b3
18.07.2015, 18:46
SELECT info FROM information_schema.processlist


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

faza02
18.07.2015, 18:51
↑ (https://antichat.live/posts/3869917/)
ой не, это долго же блиндом будет доставать


так он уже достал, #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
↑ (https://antichat.live/posts/3871870/)
Нашел решение проблемы: составил дублирующий запрос, а в дубле, в ссылочное поле врезал подзапрос из другой таблицы. Все работает ) Странное поведение (см. пост #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://antichat.live/members/81757/), тестил здесь: https://www.phpmyadmin.net/try/

b3
23.07.2015, 19:27
↑ (https://antichat.live/posts/3871945/)
b3, да, добился


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

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


↑ (https://antichat.live/posts/3871870/)
составил дублирующий запрос, а в дубле, в ссылочное поле врезал подзапрос из другой таблицы

frank
24.07.2015, 14:16
тоже тестанул 5.5.23 версия и тоже не отличается. Как и у Strilo4ka (https://antichat.live/members/81757/)

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 (http://demo.phpmyadmin.net/master-config/tbl_change.php?db=&table=&where_clause=.%601%60+%3D+4+AND+.%602%60+%3D+5+AND +.%603%60+%3D+6&clause_is_unique=0&sql_query=SELECT+1%2C2%2C3+UNION+SELECT+4%2C5%2C6&goto=sql.php&default_action=update&token=cd3d5435cec84b4ec95644f52cddfb8d)

4 5 6


SELECT 1,(SELECT 2),3 UNION SELECT 4,5,6

Результат:

1 2 3

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