Уязвимость в PHP, о которой пойдет речь в данной статье, была обнаружена в декабре 2008 пользователем форума sla.ckers.org под ником barbarianbob. В одном из своих ответов он предложил новый способ реализации локального инклуда, когда атакующий имеет возможность указывать произвольное имя файла, но не способен отбросить расширение при включенной директиве PHP magic_quotes_gpc в виду того факта, что широко используемый в таких целях NULL-byte (0x00) подвергается экранированию и, как следствие, становится неэффективным. Значение подобного способа невозможно переоценить, так как на данный момент почти все LFI-векторы основаны на использовании NULL-байта и, как правило, имеют данное ограничение. До настоящего времени информация оставалась незамеченной, но недавно итальянская команда USH опубликовала уникальный материал, расширяющий понимание новой уязвимости и дополняющий представление о ее причинах и других способах реализации. (more…)
Tag: php-injection
-
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 $p.'/'.$f.'.'.$config_ras; $sfx = file($p.'/'.$f.'.'.$config_ras); if (!$sfx){ echo 'Файл с данными параметрами не найден!'; }else{ include_once $p.'/'.$f.'.'.$config_ras; } ?>
Система предполагает получение переменных $p и $f со стороны пользователя, однако проверка данных проводится только в массиве $_GET (index.php@23):
<?php if(eregi("[^a-z0-9_-]",$_GET['f']) || eregi("[^a-z0-9_-]",$_GET['p'])){header ("Location: index.php?error&".SID); exit;} ?>
При передаче параметров p и f в cookie или в POST-запросе существует возможность обхода фильтрации и внедрения произвольных данных в функцию include. (more…)
-
Глобальный поиск уязвимостей в PHP-движках
Не перестаю удивляться Google; количество, а, главное, качество разнообразных сервисов просто поражает. Одним из самых любимых и часто используемых, помимо поиска, в последнее время для меня стал Google Code Search. Этот сервис предоставляет возможность поиска определенных строк в коде десятков тысяч проектов с открытыми исходниками, причем имеется возможность использования регулярных выражений. Поле применения этого уникального сервиса очень велико, в частности с помощью него можно найти множество уязвимых PHP-скриптов. В этом посте я хотел бы поделиться некоторыми запросами для поиска бажных веб-приложений.
-
Инклуд удаленных файлов в microSSys CMS 1.5
Обнаружил RFI в microSSys CMS, самой непрофессиональной CMS’ке, которую я когда-либо видел. Помнится был WCPS, который занимал в моем “почетном” рейтинге первое место, но эта CMS еще ужасней во всех отношениях, включая и безопасность. Вот хоронология моих действий:
- переписал файлы на локалхост
- открыл в браузере скрипт установки
- испугался и закрыл
- открыл исходный код index.php
- снова испугался, но перед тем, как закрыть заметил RFI
CMS’ка настолько стремная, что str0ke с milw0rm’а отказался принимать уязвимость =) (more…)
-
Безопасность загружаемых изображений
Ни для кого не секрет, что возможность загрузки различных изображений на удаленный сервер всегда вызывала глубочайший интерес хакеров. В частности, под прицел взломщиков попадали форумы с корявой реализацией аплоада аваторов, а также фото-галереи, позволявшие загрузить произвольные файлы. В настоящее время ситуация нисколько не изменилась: сохранились не только старые виды уязвимостей, но и появились новые, связанные с такой технологией как обработка метаданных. Дело в том, что администраторы, контролируя общую безопасность своих сайтов, не уделяют должного внимания проверке содержания загружаемых изображений. Кроме того, некоторые даже умудряются создавать скрипты, абсолютно не следящие за расширениями файлов, что приводит к загрузке чего угодно, вплоть до PHP-шеллов. В данной статье мы рассмотрим способы атак на веб-сайты, связанные с аплоадом графических изображений.