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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Небольшое обновление…

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

Чего то давно я не обновлял блог, прямо стыдно немного. И вроде есть материал который можно добавить, но все никак руки не доходят… Дел много навалилось, прошу извинить. Но в ближайшее время я думаю тут появится интресный цикл про распознавание одной довольно сложной капчи, материал будет интересен, ждите ;)

А пока вот сегодня рихтанул немножко дизайн. И добавил кнопку со ссылкой на RSS ленту:

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

На этом пока все.

Проектирование… А нужно ли?

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

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

Ладно. От слов к делу. На днях пришлось (ну или не совсем пришлось, скорее захотелось) писать программу десктопную для диагностики автомобилей через интерфейс OBD-2, вообщем это тонкости, и к делу отношения не имеет. Довольно сложные алгоритмы, да и учитывая то что прикладные программы я последний раз разрабатывал лет пять-семь назад, то это вообщем то было довольно таки сложно. Читать далее →

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

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 комментариев

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

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

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

Здравствуй хабрахабр =)

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

Не удержался от того чтобы не похвастаться =)

Наверное, вы обратили внимание, что не так давно я написал пост с просьбой поделится инвайтом на хабра хабр. И вот теперь я наконец полноценный пользователь хабрахабра.

Выражаю огромную благодарность некоему Кириллу за то что откликнулся на мое клянчанье инвайта и таки уговорил своих друзей мне его дать =)

Наконец я тоже смогу разводить срач в комментариях наравне с остальными пользвателями хабрахабра ;)

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

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

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

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

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

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

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

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

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

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

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

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

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