Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
различные результат на *group+by* и *union+select* |

28.07.2008, 16:15
|
|
Участник форума
Регистрация: 06.02.2008
Сообщений: 110
Провел на форуме: 217423
Репутация:
32
|
|
различные результат на *group+by* и *union+select*
Вот блин штука какая. На одном из сайтов нашел стандартную sql-инъекцию.
Запрос типа site.com/?nr=1' выдает ошибку "mysql_fetch_array()....". Скуль на лицо, с помощью запроса site.com/?nr=1+group+by+5/* появляется ошибка, стало быть кол-во столбцов 4 (при site.com/?nr=1+group+by+4/* - ошибки нет), значит должен быть верен запрос типа site.com/?nr=1+union+select+1,2,3,4/* ну или хотя бы site.com/?nr=1+union+select+null,null,null,null/*.
Как не вертел, данные запросы вес равно выдают ошибку(
При использовании order+by так же нет ошибок.
В чем может быть проблема. Я предполагаю, что скрипт фильтрует в запросе второй select и так реагирует.
|
|
|

28.07.2008, 16:21
|
|
Banned
Регистрация: 27.07.2008
Сообщений: 19
Провел на форуме: 65591
Репутация:
6
|
|
юзай sql injection tool 4
|
|
|

28.07.2008, 16:23
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
1. Ты подставляешь юнион к существующему значению, а надо к несуществующему (...1+and+1=2+union+...).
2. Возможно там несколько запросов (в таком случае посимвольный брут).
3. Версия мускула = 3 (+and+substring(version(),1,1)=3 - это что бы проверить) и следовательно подзапросы не поддерживаются.
Читай статью:
https://forum.antichat.ru/threadnav43966-1-10.html
|
|
|

28.07.2008, 16:24
|
|
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме: 3886281
Репутация:
929
|
|
м.б. там просто 3 версия секеля и нет юниона ;-)?
|
|
|

28.07.2008, 17:30
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Если четвёртая версия это ещё не означает поддержку подзапросов.Вот какая точная версия,с которой начинается поддержка подзапросов - не помню...).Про третью вообще молчу))
|
|
|

28.07.2008, 18:09
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 787
Провел на форуме: 2924346
Репутация:
1719
|
|
Сообщение от Велемир
Если четвёртая версия это ещё не означает поддержку подзапросов.Вот какая точная версия,с которой начинается поддержка подзапросов - не помню...).Про третью вообще молчу))
Подзапросы поддерживаются MySQL >4.1
Правда, тут о них речи не было, UNION не является частью подзапроса.
Подзапрос имеется, скажем, в этом примере:
Код:
SELECT 1,2,(SELECT `passwd` FROM `users` limit 0,1) from mysql.user;
или
Код:
SELECT `password` FROM `users` WHERE `id` = (SELECT `user_id` FROM `comments` limit 155,1);
Последний раз редактировалось n1†R0x; 28.07.2008 в 18:13..
|
|
|

28.07.2008, 19:22
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Сообщение от n1†R0x
Подзапросы поддерживаются MySQL >4.1
Правда, тут о них речи не было, UNION не является частью подзапроса.
Подзапрос имеется, скажем, в этом примере:
Код:
SELECT 1,2,(SELECT `passwd` FROM `users` limit 0,1) from mysql.user;
или
Код:
SELECT `password` FROM `users` WHERE `id` = (SELECT `user_id` FROM `comments` limit 155,1);
Хыхы))А мне всегда почему-то казалось, что подзапрос -
это выражения вида 1+and+substring(version(),1,1)=5;
или 1+and+1=5+union+select; Выполнится второй
запрос,а первый улетает.Так эт чо - один большой запрос или всё же два?)).
Уф...
|
|
|

28.07.2008, 19:41
|
|
Новичок
Регистрация: 26.07.2008
Сообщений: 20
Провел на форуме: 154110
Репутация:
14
|
|
попробуй site.com/?nr=-9999+union+select+1,2,3,4/* несуществующее значание
|
|
|

28.07.2008, 19:56
|
|
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме: 17668503
Репутация:
5826
|
|
Сообщение от Велемир
Хыхы))А мне всегда почему-то казалось, что подзапрос -
это выражения вида 1+and+substring(version(),1,1)=5;
Это не подзапрос, а использование логического опретора and.
В запросе получается что то вроде этого:
select title from page where page_id=[sql inj]
Смысл запроса вывести заголовок указанной страницы.
Сюда ты и подставляешь данные:
select title from page where page_id=1 and substring(version(),1,1)=5
Смысл вывести заголовок указанной страницы и первый символ версии БД должен быть равен 5.
Т.е. запрос выполнится успешно если верси БД равна 5.
substring() и version() это функции.
В данном примере ты используешь логический опрератор and и две функции, а подзапросы не используешь.
Ограничиваясь такими логическими посимвольными учтонениями запроса, используя только функции и не используя подзапросы максимум что ты можешь сделать это вывести содержимое файла (и то если пользователь БД обладает соотвествующими правами) - подробнее тут => Работа с MySQL третьей версии...
Сообщение от Велемир
или 1+and+1=5+union+select; Выполнится второй
запрос,а первый улетает.Так эт чо - один большой запрос или всё же два?)).
Уф...
union - это опретор объединяющий два запроса:
select title from page where page_id=1 and substring(version(),1,1)=5 union select 1
В данном случае если версия БД не равна 5, то выведется еденица.
Подробнее тут => SQL injection полный FAQ
Подзапросы используются для работы со слепыми инъекциями:
select title from page where page_id=1 and (select 1 from user limit 0,1)=1
Подробнее про слепые инъекции тут => SQL инъекция FAQ (в т.ч. и blind SQL)
P.S. а вообще очень советую купить справочник/учебник по синтаксису sql.
Последний раз редактировалось Grey; 28.07.2008 в 20:06..
|
|
|

29.07.2008, 15:36
|
|
Участник форума
Регистрация: 16.11.2006
Сообщений: 230
Провел на форуме: 599789
Репутация:
227
|
|
мне кажется, что учше нам увидеть эту ссылку)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|