PHPIDS. За и против

IDS (Intrusion Detection System) или система предотвращения вторжений является одним из средств защиты от различных атак. Среди типов IDS можно выделить сетевые и локальные IDS. Сетевая IDS обеспечивает безопасность целой подсети; как правило, она работает на аппаратном уровне, т.е. встроена в маршрутизатор или другие сетевые устройства. Локальная IDS располагается непосредственно на том компьютере, который необходимо защищать от различных атак извне. В этом случае контроль обеспечивается на программном уровне. Многие файрволы и брэндмауэры так или иначе включают в себя модуль IDS, а самой известной системой подобного рода является Snort. Главное назначение IDS – это предотравщение таких атак, как переполнение буфера, сканирование портов, отказ в обслуживании (DoS).

PHPIDS в этом отношении выделяется среди традиционных систем обнаружения вторжений Continue reading “PHPIDS. За и против”

Pangolin: SQL-инъекции теперь не утомляют

Нет-нет, pangolin – это не название препарата =) На самом деле это новый интрумент для быстрой и эффективной эксплуатации SQL-инъекций, разработанный китайскими хакерами, и переводится как “ящер”. По заявлению главного разработчика, это самая лучшая программа среди подобных; возможно это так и есть, ведь в Китае pangolin является самым популярным интрументом для работы со SQL-инъекциями. Признаться, ни за что бы не скачал эту программу, заявленной как “The best SQL-injector you’ve ever seen”, если бы не встретил восторженных комментариев на одном из зарубежных форумов, посвященных веб-безопасности. Мнения пользователей меня заинтриговали, и я решил проверить что из себя представляет этот чудо-зверь.

Continue reading “Pangolin: SQL-инъекции теперь не утомляют”

SQL-инъекции, связанные с мультибайтовыми кодировками и addslashes

Недавно на milw0rm’е был опубликован эксплоит для популярного форумного движка  Simple  Machines  Forum  версии 1.1.4, являющейся довольно распространенной на просторах интернета. Уязвимость связана с реализацией SQL-инъекции, основанной на особенностях мультибайтовых кодировок, которые позволяют обойти экранирование опасных символов с помощью функции addslashes().

Итак, уязвимость возможна благодаря тому, что при установке SMF переменная $db_character_set не записываются в конфигурационный файл, если пользователь оставил кодировку соединения с базой данных по умолчанию (в SMF это UTF-8). При включенной опции register_globals злоумышленник может назначить этой переменной любое значение, состоящее из буквенно-цифровых символов. Таким образом, вместо стандартной кодировки можно назначить любую другую, включая определенные мультибайтовые кодировки, позволяющие обойти фильтрацию входящих данных посредством addslashes() на символ одинарной кавычки. К таким кодировкам относятся SJIS, BIG5 и GBK. В чем же заключается ошибка addslashes()? Дело в том, что addslashes() просто добавляет обратный слэш перед одинарными (0x27) и двойными кавычками (0x22), перед бэклсэшем (0x5c) и перед null байтом (0x00), причем эта функция не проверяет какой символ в итоге будет создан. Например, в кодировке GBK мультбайтовый символ 0xbf27 не является допустимым, однако 0xbf5c воспринимается как приемлемый. Точно так же и для BIG5: 0xa327 – неправильный символ, но после того, как addslashes() добавит слэш перед 0x27, у нас получится следующая последоавтельность байтов: 0xa35c27. 0xa35c является корректным мультибайтовым символом для кодировки BIG5, т.е. он будет рассматриваться как один символ, в то время как 0x27 станет самостоятельным и одинарная кавычка останется без экранирования.

Continue reading “SQL-инъекции, связанные с мультибайтовыми кодировками и addslashes”

Используем TOR как источник бесплатных прокси-серверов

TOR (The Onion Router) известен как средство обеспечения безопасности трафика. С помощью него достигается высокая анонимность благодаря прохождению пакетов в зашифрованном виде через цепочку случайных серверов (или нодов). TOR – уникальное решение для обеспечения анонимности и имеет ряд преимуществ над использованием обычных прокси или цепочки прокси. Самое главное из них – пользователю не нужно постоянно искать списки прокси-серверов. TOR – это сеть множества серверов, организованная таким образом, что пользователю не нужно задумываться о маршруте прохождения пакетов, так как узлы выбираются случайным образом. Именно это обстоятельство позволяет обходить проверку на IP-адрес в различных форумах, чатах и голосованиях, так как почти каждый запрос пользователя посылается через уникальный нод. Эта особенность TOR’а уже давно известна и успешно используется в настоящее время, однако я еще ни разу не встречал в сети методов, описывающих автоматизацию осуществления запросов, например с помощью скрипта. Зачем это нужно? Все очень просто – для накрутки различных головсований и счетчиков. Например, у меня есть предположение, что, если каждый день дергать фид на Feedburner через TOR, тем самым начисляя себе якобы новых читателей, можно существенно поднять тИЦ сайта, так как при включенной опции Awareness API на фидбернере, Яндекс, а также боты различных рейтингов, смогут видеть количество подписчиков. При большом количестве запросов в день через TOR к нашему фиду, можно заставить Яндекс подумать, что у нас целая армия читателей. Но это лишь мои догадки, к тому же это относится больше к SEO, чем к web-безопасности. Тем не менее, я уверен, что можно найти еще множество способов применения автоматизированных средств для работы с TOR. Я написал три варианта PHP-скриптов, реализующих взаимодействие с TOR. Continue reading “Используем TOR как источник бесплатных прокси-серверов”

Глобальный поиск уязвимостей в PHP-движках

Не перестаю удивляться Google; количество, а, главное, качество разнообразных сервисов просто поражает. Одним из самых любимых и часто используемых, помимо поиска, в последнее время для меня стал Google Code Search. Этот сервис предоставляет возможность поиска определенных строк в коде десятков тысяч проектов с открытыми исходниками, причем имеется возможность использования регулярных выражений. Поле применения этого уникального сервиса очень велико, в частности с помощью него можно найти множество уязвимых PHP-скриптов. В этом посте я хотел бы поделиться некоторыми запросами для поиска бажных веб-приложений.

Continue reading “Глобальный поиск уязвимостей в PHP-движках”

Эксплоит для одноклассников

Сегодня обнаружил, что RST/GHC вдруг возродилась. Признаться, для меня это было открытие. Только теперь объединенная команда состоит еще из одной тимы: UKT. Кто это такие мне пока неизвестно. А вот сплоит для одноклассников теперь известен всем =) Сегодня его раздавали на IRC-канале всем желающим. Continue reading “Эксплоит для одноклассников”

Локальный прокси – профессиональный инструмент специалиста по безопасности

Какие преимущества нам дает использование локального прокси-сервера? Прежде всего это полная свобода действий над входящими и исходящими пакетами, а также над web-контентом. Настроив свой браузер на работу с ним, Вы сможете блокировать баннеры, подозрительный javascript-код и опасные тэги. Другими словам, локальный веб-прокси с правильно настроенными фильтрами осуществляет полный контроль над web-содержимым. Однако поле применения данного средства намного шире, в частности локальные прокси могут быть полезны для обнаружения уязвимостей в web-интерфейсах и проведения тестов на проникновение.

Мне известны две подобные программы – это Proxomitron и Privoxy. Первая разрабатывалась еще для Windows 95; последняя версия – Naoko 4.5, релиз которой состоялся в 2003 году. К сожалению, в настоящее время программа не обновляется, однако ее возможностей мне вполне хватает и, уверен, хватит еще надолго. Privoxy – кросплатформенный аналог Proxomitron’а. Обычно его используют в связке с TOR’ом – сетью, обеспечивающей безопасность трафика. GUI-интерфейс у программы как таковой отсутствует. Все правила для фильтрации веб-контента необходимо вручную указывать в текстовых конфигурационных файлах. На лицо издержки кроссплатформенности, но если вы поклонник консоли и линукса, то эта программа будет Вам по душе. Я же предпочитаю Proxomitron, именно о нем в этом посте и пойдет речь.

Continue reading “Локальный прокси – профессиональный инструмент специалиста по безопасности”

Вы верите в призраков?

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

Существует несколько конференций, которые проводятся закрыто, и их уровень обычно довольно высок. Одной из них является конференция BlueHat, которую проводит Microsoft. BlueHat – это внутреннее мероприятие MS, однако компания приглашает множество специалистов по безопасности со всего мира. Вместе с парой моих друзей я присутствовал на ней, и, несомненно, она оказалось довольно занимательной. Особенно нас заинтересовала речь Мануэля Кабаллеро (Manuel Caballero), которая была презентована под названием «Житель в моем домене» («A resident in my domain»). Анонс его выступления был по-настоящему интригующим:

Вы верите в приведения? Представьте невидимый скрипт, который бесшумно следует за Вами, в то время как Вы посещаете страницы в интернете, даже после того, как Вы сменили адрес тысячу раз, чувствуя себя в совершенной безопасности. Теперь представьте, что приведение способно видеть все, что Вы делаете, включая, страницы, которые Вы посещаете, набираемый Вами текст (включая пароли), и даже предугадать Ваш следующий шаг.

Не требуется никаких загрузок, не нужны подтверждения пользователя и ActiveX. Другими словами: никаких дописываемых строк. Мы изучим силу скриптов- резидентов (resident scripts) и силу глобального междомена (global cross-domain). Также мы исследуем методы обнаружения междоменов и скриптов-резидентов.

Continue reading “Вы верите в призраков?”

XDomainRequest vs XMLHttpRequest

Этот пост является продолжением недавней статьи, в которой описывались методы удаленного взаимодействия с сервером посредством JavaScript, в частности с помощью AJAX. Как Вы уже знаете, в FireFox 3 JS-объект XMLHttpRequest будет иметь возможность посылать запросы на сторонние сайты. Microsoft по-видимому снова решила выделиться и вместо того, чтобы унифицировать интерфейс для отправки запросов, решила внедрить новый объект в Internet Explorer 8, который также будет способен делать междоменные вызовы. Заметьте, что до этого в IE использовался (собственно и сейчас используется) свой объект ActiveX с названием Microsoft.XMLHTTP, однако вместо его изменения, как поступили разработчики FF с XMLHttpRequest, мелкомягкие решили создать полностью новый, и при этом он не будет связан с ActiveX! Напрашивается вопрос: раз уж принялись за создание нового объекта, почему бы не сделать его максимально универсальным? Мне непонятно такое стремление, впрочем, как и всем разработчикам, среди которых данное решение поддержки однозначно не найдет.

Continue reading “XDomainRequest vs XMLHttpRequest”

Инклуд удаленных файлов в microSSys CMS 1.5

Обнаружил RFI в microSSys CMS, самой непрофессиональной CMS’ке, которую я когда-либо видел. Помнится был WCPS, который занимал в моем “почетном” рейтинге первое место, но эта CMS еще ужасней во всех отношениях, включая и безопасность. Вот хоронология моих действий:

  1. переписал файлы на локалхост
  2. открыл в браузере скрипт установки
  3. испугался и закрыл
  4. открыл исходный код index.php
  5. снова испугался, но перед тем, как закрыть заметил RFI

CMS’ка настолько стремная, что str0ke с milw0rm’а отказался принимать уязвимость =) Continue reading “Инклуд удаленных файлов в microSSys CMS 1.5”