HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Multivariant Blind SQL Inject's
  #1  
Старый 24.04.2009, 17:51
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..
 
Ответить с цитированием
 





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


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




ANTICHAT ™ © 2001- Antichat Kft.