Deep Blind SQL Inject или ... Угнать за 60 минут =)

Discussion in 'Новогодний Видео-Конкурс [2012]' started by BigBear, 20 Jan 2013.

  1. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    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
     
    _________________________
    #1 BigBear, 20 Jan 2013
    Last edited: 21 Jan 2013
    11 people like this.
  2. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    Залил. Все ссылки обновлены в 1 посте.
     
    _________________________
    #2 BigBear, 21 Jan 2013
    Last edited: 21 Jan 2013
    1 person likes this.
  3. cat1vo

    cat1vo Level 8

    Joined:
    12 Aug 2009
    Messages:
    375
    Likes Received:
    343
    Reputations:
    99
    Видео очень полезно для новичков и для более глубокого понимания Слепых инъекций, но вот, что не понравилось, так это то, что хеш методом Brute-Force прогоняли по всем символам ASCII, а в случае с FIND_IN_SET только по тем которые присутствуют в алгоритме шифрования md5 - [0-9a-f], и сделали вывод, что это намного быстрее, да я не спорю, быстро, но все же не настолько! :)
    З.Ы. И очень долго все... Я мотал :(
     
  4. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Всё-же решил снять видео :)
    Так, что могу сказать, недочеты:
    • Как-то долго очень, устаешь смотреть
    • Извините, цитата: функция поддерживает HEX. Поддерживает не функция, а синтаксис запросов
    • phpMyAdmin - Как-то всё выглядит криво, особенно на широкоформатном мониторе, можно было-бы взять консольные приложение и для проверки ответа, для mySql и т.д.
    • Не надо использовать сайты для HEX-Кодирования
    • Запрос можно сократить до 'or(sleep(5))or' и т.п.
    • Не только взломал чужой сайт, но и показал свой login на sweb, по которому обычно труда не составит найти владельца.
    • Запросы можно было-бы писать не в строку, а развернуть
    • Если применить unhex к хэшу и вывести побитово, будет быстрее и мы можем точно сказать бит, а не делить текст поиска на 2 части. В некоторых случаях информацию даже можно сжать. + лину запроса можно сократить
    • См. выше, нужно 4 или менее запросов на символ md5, в случае с поиском - больше, а ваш первый софт использует 255 запросов на символ, лучше бы вы его не показывали. :(

    45 секунд, поскольку условие сверяется несколько раз. Используй LIMIT 0,1 и ждать не нужно, > n s или менее.

    Что понравилось:
    • Для новичков всё очень понятно, я изучал это не по такому видео, а по справочнику mysql.com

    Ну а вообще, видео меня разочаровало :(, по названию я ожидал большего, - несколько символов в секунду, минимальная длина запроса, обход фильтрации, прокси, а вы потом ещё смотрели символ по таблице... Не расстраивайся, все мы учимся ;)
     
    #4 randman, 21 Jan 2013
    Last edited: 21 Jan 2013
  5. BigBear

    BigBear Escrow Service
    Staff Member Гарант - Escrow Service

    Joined:
    4 Dec 2008
    Messages:
    1,801
    Likes Received:
    920
    Reputations:
    862
    Есть такая пословица - поспешишь, людей насмешишь =( Видео снималось за пару часов до окончания, как только смог сесть. Выжал из себя всё, чт осмог придумать на скорую руку. Fast-track получается.

    Но с другой стороны, я снимал не для МОА ) Я снимал для тех, кто просто бросает скули на полдороге, хотя их можно докрутить.

    Говно-код не выложил по причине недописанности. Для видео реализовал хотя бы Brute-Force чтобы показать что совсем не обязательно сидеть и руками вбивать.

    Почему 255 символов? Вообще то там используется [0..9a..zA..Z] + несколько спецсимволов. Всё это надо чтобы вывести соль из пасса, которая, как вы знаете лежит слитно с ним и имеет самые разные регистры.

    Что было под рукой, то и использовал. МОжно конечно было прямо в мускуле вбивать select hex(), но чё-то я не допёр сразу =)

    А вообще очень правильный отзыв, тут очень глобальная тема, такое видео сложно сделать за пару часов =)
     
    _________________________
  6. MaxFast

    MaxFast Elder - Старейшина

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Очень хорошее видео, да.
     
  7. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    А я так искал AND IF((SELECT ascii(substr(USER(),0,1)))<"111", sleep(2), null)--+'1
    Теперь буду знать еще способы.
    Спасибо за видео.
     
  8. Dr..VATSON

    Dr..VATSON Elder - Старейшина

    Joined:
    7 Dec 2008
    Messages:
    52
    Likes Received:
    53
    Reputations:
    18
    Жмот!
     
    #8 Dr..VATSON, 21 Jan 2013
    Last edited: 5 Feb 2013
  9. l1ght

    l1ght Elder - Старейшина

    Joined:
    5 Dec 2006
    Messages:
    191
    Likes Received:
    678
    Reputations:
    333
    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, один символ при подборе слажал) благо там оказались дефолтные префиксы битрикса