Year: 2008
-
Защита от CSRF
CSRF является одной из самых распространенных уязвимостей в современных веб-приложениях. Это связано с недооценкой разработчиками степени угрозы CSRF-атак, что выражается в недостаточных мерах защиты против CSRF или вообще в полном их отсутствии. На самом деле, эффективно обезопасить свое веб-приложение от CSRF совсем не сложно: уже достаточно давно практикуется универсальный способ, о котором я хотел бы…
-
SQL Column Truncation в WordPress
Вот и появился первый эксплоит для уязвимости SQL Column Truncation, о чем не так давно писал Стефан Эссер, специалист, обнаруживший данную уязвимость. Причем дыра найдена не в каком-нибудь малоизвестном движке, а в WordPress! Тем не менее повода для паники нет, так как уязвимость некритична: все что удастся нападающему – это сменить пароль администратору, но узнать…
-
Уязвимости в 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-кода были явными, однако поведение уязвимого веб-приложения при особых запросах говорило о наличии некой…
-
Хранимые процедуры – панацея от SQL-инъекций?
У многих разработчиков сложилось мнение, что хранимые процедуры могут спасти от любой SQL-инъекции. Напомню, что хранимые процедуры (stored procedures, SP), это функции, написанные на языке 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){ /* […] */ } /* […] */ } ?> Описание: данные…