Print This Post Модуль для работы с Web

Воскресенье, 18. Июль 2010
Раздел: Perl, автор:

Написал простой модуль для работы с web. Модуль довольно легкий, основан на IO::Socket::INET и IO::Socket::SSL.

Конструктор:
new()
new(arg => value, arg => value)

  Создает объект, который используется для дальнейших запросов. Доступные аргументы: agent (user-agent, который будет использоваться в запросе), timeout (таймаут соединения).

Методы:
set_cookie($arg)
  Устанавливает аргумент в качестве кукисов.

header(%arg)
  Устанавливает дополнительные заголовки.

proxy_auth($login, $passw)
  Устанавливает логин и пароль для авторизации при работе с http-прокси.

socks_auth($login, $passw)
  Устанавливает логин и пароль для авторизации при работе с socks-прокси.

proxy($proxy_type, $proxy)
  Включает работу через прокси.
  $proxy_type может принимать следующие значения: 0 - без прокси, 1 - http-прокси, 2 - socks5 прокси.
  $proxy в формате ip:port

request($method, $host, $port, $uri, $payload, $limit)
  Метод для непосредственного выполнения запроса
  $method - GET, POST, HEAD,
  $host - адрес сайта с http:// (например, http://rambler.ru),
  $port - порт,
  $uri - путь запроса (например, /index.php),
  $payload - тело POST-запроса,
  $limit - количество байт, которые необходимо считать из сокета (0 - считать весь ответ).

Примеры работы с модулем
Получение веб-страницы в переменную и вывод содержимого ответа на экран:

Работа через прокси:

POST запрос через прокси:

Скачать: web.pm

Print This Post Simple Engine Scanner

Пятница, 16. Июль 2010
Раздел: C#, Perl, автор:

Simple Engine Scanner - инструмент для автоматического сканирования веб-сайтов на наличие уязвимостей по заранее созданной базе. Инструмент состоит из двух частей: скрипт для определения уязвимостей (Perl) и программа на C# для облегченного создания базы уязвимостей, которую этот скрипт использует.

База представляет собой XML-документ. Описывать структуру не буду, сделаю некоторые пояснения по программе, которая позволяет эти XML'ки редактировать.
(База-пример лежит в архиве, ее можно открыть и полистать для того, чтобы понятнее было.)

База содержит информацию о движках для проверки. Можно добавлять новые. Каждый движок имеет секцию "Соответствие", в которой задаются критерии, по которым двиг будет идентифицирован. Эта секция позволяет делать запросы, проверять наличие файлов на сайте, проверять, присутствуют ли заданные строки в полученном запросом контенте и проверять его соответствие заданными регулярными выражениями. Можно задать число необходимых совпадений для идентификации движка.
Секции движков также содержат подраздел "Модули", куда можно добавлять уязвимости модулей движка. Имеется такая же секция соответствия (она тут вполне может быть пустой). Можно добавить системную секцию для создания временных переменных, необходимых для тестирования модуля. Созданные переменные можно использовать для тестирования текущего модуля - они вставляются с помощью фигурных скобок, например, {myvar}. Вставка работает в запросах, в данных POST-запросов, в Cookies, в именах и описаниях уязвимостей. Обязательно парсите переменную перед тем, как ее использовать. Системная секция выполняется перед всеми остальными запросами модуля, и поэтому может быть только одна. В секцию модуля можно также добавлять уязвимости, которые опять-таки детектируются с помощью уже знакомых соответствий.

В программе редактирования БД после изменения параметров не забудьте нажать кнопку "Сохранить", а после завершения редактирования - "Сохранить БД...".

Теперь немного о скрипте для проведения тестирования.
Запускается он следующим образом:

check.pl http://example.com/forum vuln_xml_file delay log_type log_file

Первый параметр - сайт для тестирования, vuln_xml_file - имя базы, по которой будет проводиться тестирование, delay - задержка между запросами, log_type - тип логирования (0 - простой вывод в консоль краткой информации, 1 - вывод в консоль и также запись лога в файл log_file, 2 - вывод в консоль краткой информации и в файл полной информации с найденными уязвимостями и информацией о них (этот режим и рекомендуем)).

Опциональные параметры:
-encoding
Примеры использования:
-encoding=auto - автоопределение кодировки сайта;
-encoding=enc (например, -encoding=utf8) - явное задание кодировки сайта.

-redirect404
Если она указана, то 301 и 302 редиректы будут считаться за страницу 404. Полезно, например, при работе с хостингом majordomo. Если она не указана, то скрипт теперь автоматически определит, стоит ли считать 301 и 302 редиректы за страницу 404. Стоит заметить, что такие вещи работают только с HEAD-запросами (и как раз с проверками существования файлов).

Также в скрипте есть строки, позволяющие при необходимости задать http-прокси или socks5 для проведения запросов:

#Proxy
my $proxy = '127.0.0.180';
#0 - no proxy; 1 - http; 2 - socks5
my $ptype = 0;

Скачать: simple engine scanner

Print This Post Simple mp3 broadcaster

Пятница, 11. Июнь 2010
Раздел: Perl, Windows, автор:

Простой консольный скрипт на Perl'е для вещания mp3 потока в сеть. Проигрывает треки случайным образом из заданной директории.

Желающие также могут воспользоваться .bat файлом и netcat для этих целей:

Скачать: pl+bat

Print This Post Exe2Pdf

Понедельник, 7. Июнь 2010
Раздел: C#, автор:

Выходя из самолета в аэропорту Балтимор, d_x поднял голову и увидел такое знакомое и дорогое американское небо, так не похожее на питерское… В ставшем родным Вашингтоне его ждал Kaimi, который как раз к приезду d_x’а закупился энергетиками и проходил очередную миссию Halo3 на максимальной сложности, ожидая друга, чтобы прояснить ему ситуацию, описанную ниже.

В начале года несколькими людьми была найдена "уязвимость" в формате PDF, позволяющая запускать произвольный код при открытии файла, которая на самом деле является документированной возможностью формата. Всего было опубликовано два типа уязвимостей: с использованием и без использования JavaScript.
После беглого изучения формата и специфики этой проблемы была реализована программа для внедрения exe файлов в тело pdf и последующего запуска exe при открытии. Конечно, при открытии pdf выдается предупреждение, однако, существует возможность вывести произвольный текст в окне предупреждения (актуально для Acrobat Reader 9.*, в 8.* весь внедренный код вываливается целиком, и пользователь, скорее всего, что-нибудь заподозрит :) ).

Программа обладает следующими возможностями:
[+] Задание произвольного текста сообщения (лучше не делать текст длинным)
[+] Задание имени временного vbs файла (используется для создания exe файла из тела pdf)
[+] Задание имени временного exe
[+] Возможность удаления exe через заданный интервал времени

Интерфейс программы предельно прост и выглядит следующим образом:

exe2pdf

Скачать: exe2pdf (пароль на архив: kaimi-ru)

Последнее обновление: 7 Jun 22-30 msk

Print This Post KWM bruteforce

Среда, 2. Июнь 2010
Раздел: C/C++, автор:

Консольный брутфорс для .kwm файлов (файл ключей webmoney keeper classic) по словарю. Использование аналогично предыдущему брутфорсу для .pfx сертификатов.
Скорость перебора составляет ~100-200 тысяч паролей в секунду.

kwm bruteforce

kwm брутфорс

Скачать: kwm bruteforce

Update 03.04.11: Исправлена проблема совместимости с текущей версией kwm-файлов WebMoney.

Update 09.07.12: Немного измененная версия брутфорса, если предыдущий вариант на Intel Core i5 выдавал скорость ~190000 паролей/сек, то этот ~250000 паролей/сек. Скачать.

Update (07.02.14):
kwm bruteforce source
GitHub: kwm-bruteforce

Print This Post Некоторые фишки ВКонтакте

Пятница, 28. Май 2010
Раздел: Социальные сети, автор:

Несколько мелких фишек, позволяющих облегчить работу по ВКонтакту:

Работающий обход away.php
http://vkontakte.ru/login.php?app=1&layout;=popup&type;=browser&fail;_url=h%74%74p%3A%2F%2Frambler.ru&success;_url=h%74%74p%3A%2F%2Frambler.ru
где вместо rambler.ru следует подставить нужный url.

Неактивная ссылка
http://site.com

Возможность определения анкет посетителей с ВКонтакте для Вашего сайта
1. Создаете предложение
2. Ставите на сайт следующий html код

где вместо ВАШ_ИД ставите id анкеты с предложением.
3. Любой посетитель сайта, который авторизован на ВКонтакте, автоматически откликнется на предложение, и Вы сможете узнать id его анкеты.

Print This Post PFX bruteforce

Вторник, 11. Май 2010
Раздел: C/C++, автор:

Как-то раз случилось забыть пароль от сертификата Webmoney. Для того, чтобы ускорить процесс вспоминания, был написан простой консольный брутфорс (на Си + Win32 API) для pfx файлов (PKCS #12 Certificate File) по словарю.
Скорость работы на компьютере с процессором CoreDuo 2Ghz под Windows XP SP3 составляет примерно 30000 паролей/сек.

pfx bruteforce

pfx брутфорс

В комплекте с брутфорсом идет Crypt32.dll из WinXP, ибо с ней почему-то достигается наибольшая скорость работы (по сравнению с библиотеками из Windows Vista и Windows 7).

Скачать: pfx bruteforce (пароль на архив: kaimi-ru)
Update (07.02.14):
Скачать: pfx bruteforce source
GitHub: pfx-bruteforce

Print This Post Обход «away.php» на ВКонтакте

Четверг, 22. Апрель 2010
Раздел: Социальные сети, автор:

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

http://vkontakte.ru/share.php?act=go&to;=http://site.com

Заметьте, при проходе по этой ссылке вас сразу перенаправляет на целевую страницу.
Однако, если попробовать разместить такую ссылку, то share.php заменится на away.php, а в районе http:// ссылка обрежется и станет частично неактивной.
Обходится это довольно просто, достаточно заменить символы в ссылке на их представления в hex-форме. После такой замены ссылка будет выглядеть так:

http://vkontakte.ru/%73hare.php?act=go&to;=%68%74%74%70%3A%2F%2Fsite.com

Эту ссылку можно без проблем разместить где угодно, она будет активна и сразу перенаправит на целевую страницу. Пользуйтесь.

Update:
Для того, чтобы разместить такую ссылку в группе, надо сделать двойной urlencode ссылки и так же подставить её после to=. Преобразование можно осуществить с помощью Универсального конвертера текстов dx'a (тип кодирования: Text->%XX).

Update от 23.04.2010:
В связи с тем, что предыдущий способ умер, был найден новый. К сожалению, он не работает в новостях групп и заметках, но зато работает на стенах пользователей, стенах групп, в ЛС и в поле веб-сайт группы. Собственно, вот пример кодирования:


http://vkontakte.ru/share.php?act=go&to;=h%74%74p%3A%2F%2Fsite.com

Для для того, чтобы перекодировать URL http://site.com в вид h%74%74p%3A%2F%2Fsite.com можно воспользоваться все тем же Конвертером и типом кодирования "Text -> %XX".

Print This Post Стереовидение. Часть 1 — Что это такое и как это смотреть.

Суббота, 17. Апрель 2010
Раздел: Жизнь, Это интересно, автор:

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

Мы должны быть благодарны тому, что имеем два глаза - именно это позволяет видеть мир трехмерным. Стереоизображение - это, по сути, обычное изображение, содержащее больше информации по сравнению с обычными 2D-изображениями, чтобы наши глаза могли построить трехмерную картинку на его основе. Существует очень большое количество способов построения стереоизображений, и я разберу их в своей статье.

Читать дальше »

Print This Post Простейший пример ComboBox для Silverlight for Windows Phone 7

Четверг, 8. Апрель 2010
Раздел: C#, автор:

Как известно, в CTP версии Windows Phone 7 Developer kit не поддерживаются некоторые элементы управления: ComboBox, Frame, многие элементы управления из Silverlight Toolkit. Таким образом, при необходимости использовать какие-либо из этих контролов возникает задача написания собственной версии специально для Windows Phone 7.

Читать дальше »