Deep Blind SQL Inject или ... Угнать за 60 минут =) Так как до окончания конкурса всего 20 минут, а на youtube видео всё ещё в процессе загрузки, рискну и создам тему тут. Ссылки на видео: 1) Youtube _ttp://youtu.be/0afnFqrjamc Среднее качество, с озвучкой _ttp://youtu.be/szFACT9Gq9k Высокое качество, без озвучки 2) Sendspace _ttp://www.sendspace.com/file/8q8bna Среднее качество, с озвучкой _ttp://www.sendspace.com/file/y0k5f4 Высокое качество, без озвучки Это видео по работе с Deep-Blind SQL инъектами, в народе также известными как "Двойная слепая инъекция". Обычно эти скули остаются недокрученными, и виной тому несколько факторов: 1) Отсутствует возможность влиять на вывод, единственная величина, поддающаяся редактированию - время ответа сервера. (Response Time) 2) "Это нудно и скучно сидеть перед монитором и считать секунды" - скажете Вы. И Вы правы. Есть куча других дел, которая требует нашего участия. 3) Программы типа Havij, Pangolin, SQLMap неправильно или не определяют совсем наличие уязвимого параметра. Ну а про инъекцию в Cookie или Header вообще приходится забыть... Оно состоит из 3ёх частей: 1) Игры с PhpMyAdmin для демонстрации технологии (азы методики, наглядное применение); 2) Боевое применение технологии на основе реального сайта (найдём жертву на бескрайних просторах сети); 3) Написание своего ПО, заточенного под Deep-Blind инъекцию (пусть компьюетры всё делают за нас !). Конструктивная критика приветствуется, но менять вряд ли что-то буду. Исходники ТОЧНО обновлю и приложу в конце темы. *** Внимание ! Автор не несёт ответственности за использование материалов видео в незаконных целях ! *** ======================================== Видео снято специально для Новогоднего конкурса Античата 2012. ======================================== Proofs: Быстрый Blind SQL Injection antichat.ru rdot.org
Видео очень полезно для новичков и для более глубокого понимания Слепых инъекций, но вот, что не понравилось, так это то, что хеш методом Brute-Force прогоняли по всем символам ASCII, а в случае с FIND_IN_SET только по тем которые присутствуют в алгоритме шифрования md5 - [0-9a-f], и сделали вывод, что это намного быстрее, да я не спорю, быстро, но все же не настолько! З.Ы. И очень долго все... Я мотал
Всё-же решил снять видео Так, что могу сказать, недочеты: Как-то долго очень, устаешь смотреть Извините, цитата: функция поддерживает HEX. Поддерживает не функция, а синтаксис запросов phpMyAdmin - Как-то всё выглядит криво, особенно на широкоформатном мониторе, можно было-бы взять консольные приложение и для проверки ответа, для mySql и т.д. Не надо использовать сайты для HEX-Кодирования Запрос можно сократить до 'or(sleep(5))or' и т.п. Не только взломал чужой сайт, но и показал свой login на sweb, по которому обычно труда не составит найти владельца. Запросы можно было-бы писать не в строку, а развернуть Если применить unhex к хэшу и вывести побитово, будет быстрее и мы можем точно сказать бит, а не делить текст поиска на 2 части. В некоторых случаях информацию даже можно сжать. + лину запроса можно сократить См. выше, нужно 4 или менее запросов на символ md5, в случае с поиском - больше, а ваш первый софт использует 255 запросов на символ, лучше бы вы его не показывали. 45 секунд, поскольку условие сверяется несколько раз. Используй LIMIT 0,1 и ждать не нужно, > n s или менее. Что понравилось: Для новичков всё очень понятно, я изучал это не по такому видео, а по справочнику mysql.com Ну а вообще, видео меня разочаровало , по названию я ожидал большего, - несколько символов в секунду, минимальная длина запроса, обход фильтрации, прокси, а вы потом ещё смотрели символ по таблице... Не расстраивайся, все мы учимся
Есть такая пословица - поспешишь, людей насмешишь =( Видео снималось за пару часов до окончания, как только смог сесть. Выжал из себя всё, чт осмог придумать на скорую руку. Fast-track получается. Но с другой стороны, я снимал не для МОА ) Я снимал для тех, кто просто бросает скули на полдороге, хотя их можно докрутить. Говно-код не выложил по причине недописанности. Для видео реализовал хотя бы Brute-Force чтобы показать что совсем не обязательно сидеть и руками вбивать. Почему 255 символов? Вообще то там используется [0..9a..zA..Z] + несколько спецсимволов. Всё это надо чтобы вывести соль из пасса, которая, как вы знаете лежит слитно с ним и имеет самые разные регистры. Что было под рукой, то и использовал. МОжно конечно было прямо в мускуле вбивать select hex(), но чё-то я не допёр сразу =) А вообще очень правильный отзыв, тут очень глобальная тема, такое видео сложно сделать за пару часов =)
А я так искал AND IF((SELECT ascii(substr(USER(),0,1)))<"111", sleep(2), null)--+'1 Теперь буду знать еще способы. Спасибо за видео.
XAMEHA, что это за детские какашки в песочнице к каждому участнику конкурса? какая разница pma или консоль, как кодировать в хекс или какова длина запроса? молодец, теперь покури любой учебник по программированию с раздела "функции и процедуры". даже несмотря на жесткое where id=x, сперва выполнится find_in_set потом sleep (а не вместе!), а 45 секунд задержки появляются потому что данные из $option попадают в несколько sql запросов, это джумла детка BigBear, это не совсем "DBSI" потому что ответа от сервера всего два (задержка 0 секунд и задержка в xxx секунд, т.е. одно можно взять за истину другое за ложь и получится обычная слепая скуля) в любом случае можно не ждать ответа от сервера, поставить таймаут запроса и считать результат истиной если сервер молчит больше xx секунд я как-то писал poc для sleep-скули в куках на alawar.com, на подбор ушло половину суток (первичный+повторная сверка, where pass='md5' вернул false, один символ при подборе слажал) благо там оказались дефолтные префиксы битрикса