Advanced SQL Injection

Проводил сегодня лабораторную работу в институте МИФИ по теме "Внедрение операторов SQL". Собственно, кастумизированная версия презентации с несколькими 0day методами и самыми актуальными техниками эксплуатации уязвимости SQL Injection представлена ниже.


22 комментария :

  1. В МИФИ? А как вы там оказались?
    Я студент МИФИ и постоянный читатель этого блога.

    ОтветитьУдалить
  2. Профессор, вы гений :) Студенты МИФИ до сих пор, наверно, переваривают услышанное.

    ОтветитьУдалить
  3. to lopatoid:

    существуют общие знакомые, которые предложили в стиле just for fun провести подобное мероприятие... на факультете ИБ

    to Touzoku:

    %)) на самом деле, студенты все пробовали "ручками".... я делал лабораторную, в которой они проводили эксплуатацию SQL Injection различными способами + пошаговую инструкцию с сокращением этих шагов в процессе увеличения номера задания (чтобы сами понимали и думали). Конечно, не все со всеми заданиями справились, но были и такие. Более того, большинство студентов основные мысли поняли.... да и вообще, легко работать со студентами, мне понравилось:)

    ОтветитьУдалить
  4. to lopatoid:

    виртуалку с лабораторной и раздаточный материал по ней я оставил в МИФИ. так что, обратись к админам (один из них Андрей) они все это дело поднимут.

    ОтветитьУдалить
  5. to lopatoid:
    Если хочешь принимать участие в дальнейших наших семинарах и мероприятиях в МИФИ стучись ко мне в мыло ;) У нас регулярно проходят интересные мероприятия, только мы их особенно не афишируем, т.к. желающих поучаствовать всегда больше чем мест в аудитории

    ОтветитьУдалить
  6. to Dmitry Evteev
    Где можно почитать-ознакомиться с прогами для пентеста?? есть розумные ресурсы??
    И еще такой вопрос какие сертификаты (типа CISA/CISM/CISSP и тд) в первую очередь важны для специалиста ИБ, какие наиболее ценные??

    ОтветитьУдалить
  7. >> Где можно почитать-ознакомиться с прогами для пентеста?? есть розумные ресурсы??

    «Пентест» - это очень широкое понятие. И при его проведении используется, как широко известное ПО (eq бруазер, telnet, ssh, etc), целевое (например, для wifi - aircrack-ng), так и узконаправленное (eq exploits). Ресурса, на котором бы были собраны «все» инструменты, просто не существует (кстати, хорошая идея сделать такой ресурс:))
    Могу предложить следующие ресурсы.
    Для WEB:
    http://www.owasp.org/index.php/Appendix_A:_Testing_Tools
    Для СУБД:
    http://vulnerabilityassessment.co.uk/
    еще ссылки:
    http://www.owasp.org/index.php/Category:OWASP_Tools_Project
    http://www.darknet.org.uk/2006/03/10-best-security-live-cd-distros-pen-test-forensics-recovery/
    http://pentestmonkey.net/tools/
    http://samate.nist.gov/index.php/Tool_Survey.html
    Подборка сканеров безопасности:
    http://forum.antichat.ru/thread15734.html
    Инструменты и много всего полезного, можно найти в блогах:
    http://pentestit.com/
    http://security-sh3ll.blogspot.com/
    На секлабе тоже есть своя подборка:
    http://www.securitylab.ru/software/
    Также, рекомендую поставить BackTrack и ознакомиться с утилитами, которые поставляются в составе Live-дистрибутива.

    >> И еще такой вопрос какие сертификаты (типа CISA/CISM/CISSP и тд) в первую очередь важны для специалиста ИБ, какие наиболее ценные??

    Сертификаты важны для отдела кадров:) Для «специалиста» в любой сфере сертификаты, как таковые, не нужны. Гораздо важнее, что у «специалиста» в голове. Если проходить сертификацию ради «сертификации» (TestKing и т.п.), то грошь цена такому сертифицированному специалисту. Совсем другое дело, что «честная» подготовка к любому экзамену, будь то CISSP или более узкоспециализированному типа MCSE, CCIE и т.п. структурирует знания в предметной области и позволяет заполнить собственные пробелы. Ну а получение сертификата - это лишь подтверждение того, что материал был правильно усвоен...
    CISSP – это очень хороший базовый курс для любого, кто занимается ИБ. Рекомендую в любом случае. Статус CISSP – это общепризнанная сертификация по ИБ и у нас и за рубежом. При приеме на работу в любое место данный сертификат всегда будет бонусом. Да и потом, без него не во все места возьмут... со стороны;) Так что с данного сертификата можно начать, а потом уже спланировать дальнейшую цепочку саморазвития/обучения/сертифицирования. Для каждого она может быть сугубо индивидуальна.

    CISM – это манагерский курс. Хочешь быть управленцем и иметь бонус, можно сдать.
    CISA – это сертификация аудитора. В России на него особо внимания не обращают. А вот на западе могут потребовать, чтобы тот, кто проводит аудит по ИБ, подтвердил свою компетентность путем прохождения данного курса и получения соответствующего сертификата.
    MCSE: Security – хороший курс для инженера (в том числе пентестера/аудитора/etc). Обычно идет бонусом.
    CCIE – аналогично предыдущему, только по теме цисок.
    И т.п. по oracle, linux, solaris и пр. все это обычно лишь бонусы и ярлычок для себя.
    По теме:
    http://www.interface.ru/home.asp?artId=6872
    http://en.wikipedia.org/wiki/Certified_Ethical_Hacker

    ОтветитьУдалить
  8. А нельзя ли как-то получить виртуалку с лабораторной и раздаточный материал по ней тем кто далеко от Москвы?

    ОтветитьУдалить
  9. Думаю можно устроить. Поговорю завтра с Сергеем Гордейчиком, как лучше организовать эту раздачу.

    ОтветитьУдалить
  10. Был бы весьма благодарен. Сам преподаю и уже многие из Ваших материалов и материалов Вашей компании использовал на лекциях.

    ОтветитьУдалить
  11. Забавно: являясь студентом факультета ИБ МИФИ, не видел и не слышал никаких приглашений на данное мероприятие. Вопрос: лабораторная работа проводилась исключительно для старших курсов или же было рассчитано на специальную аудиторию?

    ОтветитьУдалить
  12. лабораторная работа проводилась для группы студентов Александра Матросова, но впрочем, была открыта для всех желающих. если есть желание в следующий раз попасть на подобного рода мероприятие напиши Александру Матросову (5-й коммент сверху)

    ОтветитьУдалить
  13. Хех, вариант с ExtractValue не знал (на локалке стоит 5.0.X и 4.1.X) и у меня эта функция не работает. Спасибо за метод! :)

    ОтветитьУдалить
  14. спасибо тебе за твой ресерч! техника с ExtractValue - это просто логическое продолжение использования warning-сообщений на кривые регекспы.

    ОтветитьУдалить
  15. to Dmitry Evteev
    Дим, спасибо за ссылки по пентесту и инфу по сертификатам,такие вопросы:
    1. Вот ты работаешь в очень неплохой компании, какими навыками нужно обладать что бы попасть в подобную компанию по направлению ИБ, на сколько я понял ты не кодишь, а больше работаешь и разбираешься с технологиями в этом направлении, если можно поподробней напиши об этом cybavat@gmail.com
    2. Можем обсудить идею создания сайта по пентестингу, мне интересно, готов взяться с твоей помощью за проект(сайт), более детально можем обсудить по почте опять-таки.

    ОтветитьУдалить
  16. Векторы классные, представляю недоумевающие лица студентов :)
    Есть пара замечаний:
    1. в секции "Выполнение команд на сервере" для MySQL все же нужно было указать, как для Oracle и PostgreSQL, - "Собственные процедуры", так как MySQL поддерживает UDF. Думаю, имелось в виду, что нет прямой возможности выполнять команды непосредственно через SQL-инъекцию, но при локальном доступе такой способ есть.
    2. Таблица "Различия СУБД" показывает, что в MySQL нет хранимых функций. На самом деле это не так.

    За extractvalue() спасибо, не знал :)

    ОтветитьУдалить
  17. to Raz0r:

    >> Векторы классные, представляю недоумевающие лица студентов :)

    они все пробовали "ручками", так что материал был в целом усвоен... как мне кажется.

    >> 1. в секции "Выполнение команд на сервере" для MySQL все же нужно было указать, как для Oracle и PostgreSQL

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

    >> но при локальном доступе такой способ есть

    а можно по подробнее?;)

    >> 2. Таблица "Различия СУБД" показывает, что в MySQL нет хранимых функций. На самом деле это не так.

    спасибо, как то это пропустил...

    ОтветитьУдалить
  18. to Qwazar:
    по поводу https://forum.antichat.ru/threadnav119047-2-10.html

    >> Ограничение длины вывода - 31 символ.
    небольшая поправка (видимо из презентации не понятно). ограничение вывода warning-сообщения в 32 символа. т.к. необходимо использовать "нечно", что вызовет ошибку, получается полезных данных можно уместить в 31 символ. Поэтому для md5, придется отправить минимум два запроса:

    mysql> select md5(1);
    +----------------------------------+
    | md5(1) |
    +----------------------------------+
    | c4ca4238a0b923820dcc509a6f75849b |
    +----------------------------------+
    1 row in set (0.00 sec)

    mysql> select 1 and ExtractValue(1,concat(0x5c,(md5(1))));
    ERROR 1105 (HY000): XPATH syntax error: '\c4ca4238a0b923820dcc509a6f75849'
    mysql> select 1 and ExtractValue(1,concat(0x5c,(mid(md5(1),32,1))));
    ERROR 1105 (HY000): XPATH syntax error: '\b'
    mysql> select version();
    +-----------+
    | version() |
    +-----------+
    | 5.1.39 |
    +-----------+

    ОтветитьУдалить
  19. Да это понятно, метод с name_const имеет тоже ограничения по длине :)

    З.Ы.
    Кстати md5 можно упаковать так чтобы хватило одного запроса :) 16*ряд+код символа, где ряд это 0 или 1 (первые 16 симоволов или вторые), ну и ко всему этому прибавить смещение, чтобы итоговые символы попали в нормальные печатные :) Только никто не будет так заморачиваться. 2 запроса уже хорошо.

    ОтветитьУдалить
  20. код символа тоже от 0 до 15 (вычесть всё лишнее). Но это так, серъёзно воспринимать не стоит.

    ОтветитьУдалить
  21. >> а можно по подробнее?;)
    В общих чертах в моем посте:
    http://raz0r.name/obzory/mysql-bekdor-dlya-windows/
    Более продвинутый вариант:
    http://bernardodamele.blogspot.com/2009/01/command-execution-with-mysql-udf.html

    ОтветитьУдалить
  22. хм... спасибо, интересный вектор

    ОтветитьУдалить