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

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

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

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

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

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

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

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

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

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

XDomainRequest vs XMLHttpRequest

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

Функция для обработки входящих данных

Собственно вот и обещанная мной функция для обработки данных, поступающих от пользователя. Для получения одной переменной вызываем так (какие аргументы передавать думаю и так ясно):

<?php
$var = import_var('var','G','INT',3);
?>

Для получения одновременно нескольких однотипных переменных вызов функции немного отличается:

<?php
extract(import_var(array('var1','var2','var3'),'G','INT',3));
echo $var1;
echo $var2;
echo $var3;
?>

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

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

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

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

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

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

Я люблю 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
?>

Красотище!

PHP Bug Scanner

Опубликовано в журнале “Хакер”
#108, X-Tools

PHP Bug Scanner – это программа, предназначенная для того, чтобы сделать процесс поиска уязвимостей в PHP-приложениях более удобным и быстрым. Она основана на сканировании различных функций и переменных в PHP-скриптах, которые могут привести к возможным уязвимостям.

Возможности:

  • возможность сканирования как множества файлов, так и одного скрипта
  • система пресетов: вы можете добавлять новые функции, изменять или удалять их
  • возможность загрузки и сохранения своих пресетов
  • 7 специальных пресетов, сгруппированных по категориям:
    1. code execution
    2. command execution
    3. directory traversal
    4. globals overwrite
    5. include
    6. sql injection
    7. miscellaneous
  • сохранение и загрузка результатов
  • сортировка результата по имени скрипта, номеру строки или функции, которая была найдена
  • быстрый обзор скрипта с подсветкой кода и пронумерованными строками
  • вычисление хэшей Zend_hash_del_key_or_index
  • String 2 chr() converter – представление строки в виде ASCII-символов в соответствии с синтаксисом PHP

Написан на PHP & WinBinder, скомпилировано bamcompile
Версия 1.0

Скачать