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

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

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

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

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

Целый год…

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

Ровно целый год я веду этот блог… Поздравляйте меня =)

Ровно год назад когда я начал вести этот блог, я обещал… В общем то много чего обещал… Обещал разработать свой php фреймворк. Обещал описывать процесс разработки своих веб приложений. ЦМС свою написать тоже обещал.

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

Но хватит о грустном =) Не без гордости скажу, что за этот год мой блог набрал посещаемость в 100-150 человек в стуки, и, честно сказать, мне очень приятно, что каждый день находится столько человек, которым мой блог становится чем-то интересен. Спасибо вам большое, мои дорогие читатели и просто случайные посетители моего блога!

Я подумал, что было бы неплохо рассказать о том как я провел лето этот год, и решил составить краткий обзор интересных тем, которые я писал за этот год. Сам обзор читайте под катом =)
Читать далее →

Уязвимость 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 комментариев

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

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

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

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