По поводу статьи в ][ “Неслучайные числа”

XA-119Недавно на сайте журнала “Хакер” увидел анонс нового выпуска. Одна из статей имела до боли знакомое название – “Неслучайные числа. Взлом генератора случайных чисел – ultimate-баг движка PHP“. Постоянные читатели моего блога, которые еще не видели эту статью, думаю, догадываются, о чем там ведется речь. Журнал я покупаю время от времени, в основном, чтобы почитать действительно стоящие статьи (обычно одна-две за полгода). В этот раз мой поход в близлежащий киоск был вызван интересом исключительно к данной статье – анонсы остальных публикаций меня не радовали, особенно “Юморим по-хакерски. Ломаем Радио Юмор FM“, автора и примерное содержание которой я мог предположить наперед (кто читал хотя бы пару выпусков журанала за последние 2 года меня сразу поймет =)). Автором статьи, к моему удивлению, оказался Маг, хотя сначала я думал, что это будет Элект, с которым мы обменивались опытом и информацией по поводу генераторов случайных чисел и усечению данных в MySQL. Тем не менее, статья мне понравилась, правда она мне показалась не очень доходчивой. Во всяком случае, мне пришлось бы не один раз перечитывать всю статью от начала до конца, чтобы вникнуть в суть дела, если бы не провел собственное исследование. Возможно формат журнала помешал Магу уместить все мысли в рамках одной статьи, а может просто сам характер материала, о котором всему миру поведал Стефан, довольно сложен для осмысления =). Еще одни момент, который я хотел бы отметить, – это недостаточная стилистическая обработка текста. Впрочем, для статей в рубрике “Взлом” это не так уж и важно, хотя для любителей рассказать историю одной скули – это один из основных компонентов, если автор рассчитывает получить одобрение на публикацию =). Среди фактических ошибок обнаружил лишь одну: в описании особенностей функции rand() не сказано про то, что они актуальны только для win32. Наверное, автор не заметил мой маленький апдейт статьи =). В целом, статья неплохая. Спасибо Магу за врезку в статье с кучей ссылок на мой блог =). Кстати, такая статья могла бы появиться намного раньше, ведь Стефан впервые описал подобного рода уязвимость в PunBB еще в феврале 2008 года. Что еще более удивительно, это эксплоит, появившийся вслед за advisory на следующий день и написанный совершенно другим человеком.

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

Скачать

SQLBruter v0.2

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

Назначение

SQLBruter – многофункциональный скрипт, реализующий перебор различными методами при атаках типа SQL Injection. При запросах с использованием UNION очень часто требуется определить количество выбираемых полей, названия таблиц и стобцов. Все это можно сделать с помощью моего скрипта. Кроме этого, SQLBruter осуществляет посимвольный перебор, т.е. с использованием конструкций типа “AND ascii(lower(substring([query],1,1))) > 97” и т.д. Важно сказать, что вам не придется указывать позицию символа – нужно лишь указать запрос и строку, возвращенную сервером, и в итоге вы получите полное содержание поля (например с хешем). Также в скрипте предусмотрено выведение результатов в файл и использование прокси.
Read more »