Безопасность

Информационная безопасность это очень важно. Все о шифровании, криптографии, защите приложений. Обзоры уязвимостей, описание методов атак, и методов защиты от данных атак.

XML Data Retrieval

2 комментария

DataRetrieval

Статья взята с Positive Research
(на данный момент, к сожалению, она не доступна на оригинальном сайте, и упоминаний о ней в интернете не осталось, но так как статья довольно интересная, то я решил выложить ее тут)

Язык XML потихоньку становится все более популярным, все чаще встречается в анализируемых веб-приложениях. И поэтому глубокие исследования в алгоритмах работы этого языка и создание новых способов атаки на него также становятся популярными: сейчас изучены техники, позволяющие читать данные с файловой системы с помощью ошибок (error-based attack), посимвольно перебирать содержимое XML-файлов с помощью XSD-схем (blind attack)…

Ничего не напоминает? :)

Да-да, когда-то давно таким же образом изучались атаки на язык SQL. Сейчас техники эксплуатации SQL-инъекций изучены максимально глубоко для большинства типов СУБД. Это же ждет и XML: он рано или поздно сдастся под напором пытливых умов. Мы же предлагаем вашему вниманию очередную ступень развития атак на XML, способ аналогичный методике Data Retrieval over DNS при эксплуатации SQL-инъекций.
Читать далее →

А как Вы загружаете файлы на сервер?

20 комментариев

«…или почему фильтрация по черному списку это плохо?»

Представим обычную загрузку файлов с помощью php. Я думаю все с этим сталкивались. Отбросим извращенные варианты, типа хранения файлов в базе, их переименовывание и прочее. Возьмем именно обычную наипростейшую форму загрузки файлов.

Обычно это форма на хтмл, затем серверная валидация по расширению загружаемого файла и последующий перенос загруженного файла из временной папки в папку загрузок. Отбросим все миллионы ошибок, которые совершают программисты в этих, казалось бы простейших, вещах, и посчитаем что этот функционал реализован грамотно и без ошибок.

Встает вопрос, а как именно фильтровать расширения файлов? Существуют два варианта:

  • По белому списку — составляем список допустимых расширений файлов, а все остальные блокируем
  • По черному списку — составляем список блокируемых расширений, а все остальные загружаем

Беда в том что для реализации фильтрации по белому списку нужно предусмотреть все возможные варианты нужных расширений которые будет загружать наш скрипт. И если для мест где необходимо загружать только картинки — все просто, то во многих других случаях прийдется составить довольно большой список легитимных расширений. Поэтому многим разработчикам кажется, что следует пойти от обратного, и запретить опасные расширения.

И если в первом случае многие уверены, что будут залиты файлы только с требуемыми расширениями (в статье я расскажу вам как можно обойти и это), то вот во втором случае не все так просто.

Эта статья о том чем плоха фильтрация по черному списку, и как этот фильтр можно обойти. А также приятным бонусом добавлю способ обхода фильтра по белому списку (и даже это возможно! о как!)

Читать далее →

PHP и CGI. Обход ограничений безопасности

5 комментариев

Сегодня пришло вот в голову что неплохо было бы рассказать о такой интересной особенности связки php и cgi (и fastcgi тоже).

В общем мало или много кто знает, что при подключении php к апачу через cgi, есть возможность конфигурировать чуть ли не каждый скрипт отдельно. А если более конкретно, то для каждой папки с php скриптами может быть создан свой файл php.ini со своими настройками, которые перезапишут глобальные настройки.

Сегодня мне подумалось, что эту фишку можно использовать в корыстных целях. К примеру в php есть несколько различных опций настроек, таких как сейфмод или опенбейсдир… Догадываетесь к чему я клоню? Дада, их в связке php+cgi можно легко обойти! Читать далее →

Уязвимость CSRF. Скрываем Referer при редиректе

Оставьте свой комментарий

Здравствуйте.

Сегодня я дополню цикл статей про CSRF. Но теперь я буду плавно переходить на «ту сторону баррикад». Как говорится кто предупрежден, тот вооружен. Если разработчик будет знать как орудует злоумышленник то он будет знать как и от чего защищаться.

Эта статья является переработанным переводом статьи «Stripping Referrer for fun and profit» зарубежного автора Krzysztof Kotowicz. Мне понравились методы используемые в его статье и я хочу поделится ими с вами. Обращу ваше внимание что это все же переработанный перевод, так как часть материала предложенного в оригинале я уже изложил у себя в статьях, и дублировать его я смысла не вижу.

В общем если вас интересует как отредеректить пользователя без указания Referer то прошу под кат :)
Читать далее →

Уязвимость CSRF. Защита

18 комментариев

CSRF уязвимость Продолжаем цикл статей на тему уязвимости CSRF

В прошлой статье я попытался описать что именно представляет из себя данная уязвимость и, что не маловажно, выполнение каких условий необходимо для проведения атаки типа CSRF.

В данной статье я попытаюсь рассказать о защите от атак данного типа со сторон:

  • Со стороны клиента — основные способы защитить себя самому
  • Со стороны сервера — правильное проектирование приложения

Если вам интересно как защититься от CSRF то добро пожаловать под кат.
Читать далее →

Уязвимость CSRF. Введение

23 комментария

Да я помню что я обещал в предыдущем сообщении написать про капчу, но, честно говоря, писать про эти капчи у меня уже сил нет. Да и надоело то, что мне, как аналитику ИБ, приходят в личку только предложения по взлому капч, и никакой другой нормальной работы.

В общем буду подниматься в глазах публики, начну писать статьи касательно безопасности. Мой профиль это в основном безопасность веб приложений, поэтому и писать я буду про безопасность веб приложений, в том числе и про уязвимости этих приложений.

Этот цикл статей будет посвящен CSRF уязвимостям. Не слышали такой термин? Значит этот цикл для вас ;)
Читать далее →

Коллизии хеш функций? Ассиметричное шифрование решает!

23 комментария

Надеюсь вы помните, я обещал в прошлой статье «Хранение паролей пользователей» предложить вариант того как можно гарантированно избавится от коллизий.

На самом деле, избавится от коллизий в хеш функциях невозможно по одной простой причине: полученная хеш-сумма должна иметь фиксированную длину. Т.е. если логически подумать то перебрав 2n комбинаций (где n — длина хеша в битах), мы стопроцентно найдем коллизию. Ну а если вы слышали про парадокс дней рождения, то для вас будет очевидным что достаточно будет перебрать «всего лишь» 2n/2 чтобы с достаточной вероятностью найти коллизию.

Конечно эти числа для хешей длинной более чем 100бит будут огромны. Например для md5 длинной 128 бит, полный перебор это всего лишь ~30 000 000 000 000 000 000 000 000 000 000 комбинаций, учитывая парадокс дней рождения надо будет перебрать совсем чуть-чуть, где-то ~18 000 000 000 000 000 000 комбинаций. На моем ноуте это «всего лишь» около 500 тысяч лет беспрерывного перебора.

Вродебы вот решение — используйте хеш функции с большой длинной выходной хеш-суммы. Но, как я говорил раньше, никто ни застрахован от того что ваш хеш от вашего пароля длинной минимум в 30 символов, не будет иметь коллизию длиной всего лишь в 1 байт. Пусть конечно эта вероятность фактически стремится к нулю, но она есть!

Стопроцентная защита от коллизий есть! Читайте под катом.
Читать далее →

Хранение паролей пользователей

8 комментариев

Любой разработчик рано или поздно сталкивался с проблемой, которая заключалась в том, как ему правильно организовать хранение паролей зарегистрированных пользователей в БД.

Я конечно не буду отрицать что статей в интернете на эту тему достаточно, но ни одна на мой взгляд не освещает всех тонкостей казалось бы такого простого процесса. Для понимания этих тонкостей разработчику необходимо наличие умения оценивать систему со стороны взломщика, а для этого необходим хотя бы небольшой опыт в этой сфере (по принципу «кто предупрежден, тот вооружен»). К сожалению, у большинства разработчиков такого опыта нет, и безопасность своих приложений они строят на основе скудной информации найденной в интернете.

В этой статье я попытаюсь рассмотреть минусы хранения открытых паролей в БД. Попытаюсь убедить в необходимости хешировать каждый пароль. Также попытаюсь объяснить зачем нужна «соль» и какой она бывает. Ну и вкратце расскажу про разные алгоритмы хеширования.
Читать далее →

Беспечность notamedia.ru

6 комментариев

Сегодня я вам расскажу историю связанную с одной из известных веб студий. А точнее про notamedia.ru.Если вкратце, то эта компания заняла 11 место в ТОП100 вебстудий рунета, то есть впринципе неплохо.

Также впечатляют их клиенты, среди них Эхо Москвы, Интерфакс, Правительство Московской области, Партия «Единая Россия», Аэрофлот, и другие (подробнее можно посмотреть на их офсайте). То что я расскажу далее наверное будет неплохим поводом задуматься клиентам над тем, стоило ли им выбирать именно эту компанию.

Вообщем эта история началась где то две недели назад. Один из моих хороших знакомых написал мне в аську о том что у него есть веб шелл на сайте notamedia. Читать далее →

Множественные уязвимости Etomite CMS

4 комментария

Сегодня понадобилось ковырнуть эту CMS.

Оффсайт цмски www.etomite.org

Немного кривой код написанный, типа, на ООП. Но логика — бред. По сути вся цмска запихнута в один файл index.php в виде одного класа. Вообщем полный бред. Судя по коду авторы что то слышали насчет безопасности, но судя по всему всего лишь краем уха. Так как было найдено:

  • SQL injection — нет зависимостей от настроек
  • Выполнение PHP кода — необходима специфичная настройка параметров CMS
  • XSS — нет зависимостей

Ну и вероятно это не предел, так как найдя эти уязвимости я остановился.

Далее описание уязвимостей, уязвимый код, и пример эксплуатации.
Читать далее →