Year: 2008

  • Как нужно проверять входящие данные

    Фильтрация данных, поступающих со стороны пользователя, с точки зрения безопасности самый важный компонент любого веб-приложения. Сегодня я хотел бы рассказать какие основные составляющие по-моему мнению должна включать правильная обработка входящих данных. Первое и самое главное правило – все, что приходит от пользователя или каким-либо образом может быть им изменено, должно проходить обязательную проверку на стороне сервера. Однако всеми излюбленный метод, при котором ко всем элементам массивов GET, POST и Cookie применяется addslashes(), не является абсолютно безопасным. (more…)

  • Введение в XPath-инъекции

    XPath (XML Path Language) – это язык, который предназначен для произвольного обращения к частям XML документа. XML (eXtensible Markup Language) – это всем известный язык разметки, с помощью которого создаются XML документы, имеющие древовидную структуру. Пример простейшего XML документа:

    <?xml version="1.0" encoding="UTF-8"?>
    <foo>
    <bar param="value"/>
    </foo>

    XPath необходим для получения конкретной информации из XML документов; это достигается путем использования специальных операторов и выражений. Обращение к элементам XML документа с помощью XPath напоминает взаимодействие с файловой системой:
    /foo/bar
    Этот элементарный XPath-запрос возвратит элемент bar из XML документа выше:

    <?xml version="1.0" encoding="UTF-8"?>
    <foo>
    <bar param="value"/>
    </foo>

    (more…)

  • Топ 10 лучших онлайн сервисов по расшифровке хэшей

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

    • бесплатность доступа
    • размер словаря
    • поддерживаемые типы хэшей
    • наличие детального криптоанализа (например с помощью Rainbow-таблиц)

    Обновлено 17.10.2019 (more…)

  • WinBinder: новый взгляд на PHP

    Возможностью компилияции PHP-скриптов в standalone-приложения в настоящее время никого не удивишь. Для этой цели существует множество программ, однако они позволяют превратить PHP-сценарий лишь в консольное приложение. GUI-интерфейс для PHP-скриптов можно создать с помощью PHP-GTK, но лично мне больше по душе WinBinder. Разница в визуальном представлении приложений, разработанных с помощью этих двух расширений для PHP, очевидна. Программы с GTK-интерфейсом в Windows выглядят очень некрасиво, ввиду кросплатформенного стандарта, в то время как приложения, созданные с помощью WinBinder, ничем не отличаются от обычных виндовых аналогов, так как имеют стандратные кнопки, прогресс бары, табы и т.д. С точки зрения организации доступа к возможностям PHP-GTK и WinBinder, также можно обнаружить серьезные различия. PHP-GTK предоставляет объектно-ориентированный интерфейс к огромному количеству классов и функций GTK+. Что касается WinBinder, для написания простейшего Hello World необходимо знать всего несколько основных функций.

    (more…)

  • Безопасность загружаемых изображений

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

    (more…)

  • Я люблю PHP 5 =)

    Давным-давно, во времена PHP 4, кодить было страшно неудобно. Например, в циклах foreach() невозможно было изменять значение элементов массива – приходилось использовать for(), что, например, меня жутко раздражало. Недавно обнаружил, что PHP версии 5 предоставляет такую возможность: для того, чтобы изменять элементы массива нужно передавать их по ссылке (by reference), т.е. добавлять & перед названием переменной:

    <?php
    $arr = array(1, 2, 3, 4);
    foreach ($arr as &$value) {
        $value = $value * 2;
    }
    // теперь $arr это массив 2, 4, 6, 8
    ?>

    Красотище!

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

    WordPress – удивительно успешный проект. За очень короткий срок он превратился из неизвестной платформы для ведения блогов в мощное, продуманное и возможно самое популярное в интернете веб-приложение, собравшее вокруг себя огромное сообщество. Однако все, что становится популярным, привлекает внимание и багоискателей. В доказательство моим словам привожу таблицу количества обнаруженных уязвимостей в WordPress с 2005 года по настоящее время. (more…)

  • Памяти rgod’а…

    Сегодня, зайдя на персональный сайт rgod’а, обнаружил это сообщение:

    I am not rgod. I’m a friend of his named Daniel.rgod died two days ago at that hospital in Catania. It was a surprise and a shock…to all of us who knew him. rgod was suffering of a rare bony marrow
    disease, leading to paralysis during his last days.It just took me a while to figure out how to have access to rgod’s website, searching the key on his laptop
    (with permission from those close to him) to post this…I don’t know what the future of this site will involve but I’d sure like to see these posts, and some of the
    others about rgod posted across the Internet, preserved on the web indefinitely. Just so that when folks google the name of rgod in years to come, they’ll be able to read it all.

    (more…)

  • Spellchecker (TinyMCE module) Remote Command Execution

    Найдена уязвимость в модуле TinyMCE для проверки орфографии – Spellchecker. Данный модуль вместе с самим TinyMCE используется в последних версиях WordPress (ветка 2.5.*), однако эта уязвимость не является полноценной, так как встретить ее на реальном сервере в сети вряд ли можно. Несмотря на это, уязвимость, действительно, серьезная, так как она позволяет выполнить произвольные команды, поэтому я все же решил рассказать, как я ее нашел и что она из себя представляет (эксплоит прилагается). (more…)

  • Я открылся!

    Всем привет! Вот совсем недавно задался вопросом: “Почему бы не создать свой собственный блог, посвященный веб безопасности?” Действительно, наступило подоходящее время, так как у меня появилось достаточное количество знаний и опыта, и я подумал, что пора бы этим добром поделиться =) Нет, я не открываю свой блог, потому что это модно – я лишь хочу объеднить свое творчество и мысли в едином месте, так как считаю, что блог – это, действительно, подходящая и наиболее удобная платформа для реализации моих идей. Так что в ближайшем времени ждите от меня интересных постов – у меня есть, что рассказать =)
    P.S. а ты подписался на мой блог? 😉