В компоненте Joomla ADSmanager обнаружена критическая уязвимость, позволяющая хакеру загрузить на сайт веб-шеллы (бэкдоры или другие произвольные php скрипты). Файлы загружаются в каталог /tmp/plupload. Достаточно выполнить один POST запрос, чтобы взломать сайт и получить над ним полный контроль, а на большинстве виртуальных хостингов и над всеми сайтами аккаунта. https://revisium.com/ru/blog/adsmanager_afu.html
Так как точно по ману апача- запрет доступа или запрет на выполнение скриптов ? ADSmanager создает папку plupload в папке /tmp , в корне сайта или папке компонента ?
1. Код в файле .htaccess Код (ini): Order Deny, Allow Deny from All это запрет доступа ко всем файлам в директории для всех и при любых условиях (если сервер на Apache и внутри подкаталогов нет другого разрешающего .htaccess). 2. ADSmanager создает папку {DOCUMENT ROOT}/tmp/plupload/ (там, куда указывает $tmp_path Joomla) 3. Поскольку теоретически можно загрузить кроме вредоносов и .htaccess с Allow from All, то более надежно - ограничить доступ к /tmp/ через ModRewrite в корневом .htaccess Код (ini): RewriteEngine On RewriteRule ^tmp/ - [F]
Тогда предлагаю,чтобы ты добавил в свой материал на твоем сайте,файл .htaccess с запретом на выполнение скриптов Код (PHP): RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
Правильный вариант указанного файла .htaccess выглядит так Код (ini): <IfModule mod_php5.c> php_flag engine 0 </IfModule> RemoveType .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .wml AddType text/plain .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .wml Но добавлять его в /tmp/ смысла нет. Оттуда ничего не должно загружаться пользователями, поэтому Deny from All. А если (вдруг) по какой-то причине должно, то это делается через разрешение конкретных файлов или расширений директивой <Files ...></Files>. А вот во всякие /images/, /cache/ в большинстве случаев как раз нужно положить приведенный выше .htaccess.
Ну скорее избыточный вариант.А вдруг хакер подключить свой модуль с использованием php. Ну тебе решать, что написано в статье. Второй вопрос- может откроешь тему о айболите в Собственных разработках? И народу проще будет обмениваться и задавать вопросы. Или у тебя строго на почту на твоем сайте ? п.с. Еще вариант Код (PHP): <Files ~ "\.(php[2-5]?|cgi|pl|fcgi|fpl|phtml|shtml|asp|jsp)$"> Deny from all </Files>
У меня при наборе адреса http://вашсайт/index.php?option=com_adsmanager&task=upload&tmpl=component белая страница, почему? Может из за того что перенаправление с без www на c www ? Что значит гостей по этому запросу не ждать?
Спасибо за предложение. Сегодня сделаю. Буду рад помочь. Нет, на разных сайтах, включая группу в ВК, на "Сёрче", vB-support.org и других сайтах поддержки различных CMS. Да, все верно. Вариаций можно придумать множество, но тот вариант, который написан у меня - отключает полностью двиг php engine, поэтому любые попытки (включая подгрузку дополнительного модуля в PHP через dl и т.п.) уже не будут работать, так как для директории отключается поддержка PHP. То есть речь не в избыточности, а в эффективности. Что касается виртуального хостинга - вероятность подключения своего обработчика PHP - маловероятна. Разве что perl/python cgi. То есть я все-таки исхожу из реальных условий. --- добавлено: 22.07.2015, первое сообщение размещено: 22.07.2015 --- Белая страница не гарантирует отсутствие уязвимости (нужно смотреть в лог ошибок, может возникает ошибка?). Вряд ли это из-за перенаправления на www. Как бы то ни было выполните рекомендации из статьи по защите от взлома через эксплуатацию дыры в ADSmanager.
У тебя же условие при отключении движка php, а именно при включенном модуле php Код (PHP): <IfModule mod_php5.c> #Если включен модуль пхп #отключаем пхп php_flag engine 0 </IfModule> Убираем условие на подключение модуля пхп,и тогда будет как ты пишешь. Код (PHP): php_flag engine 0
Все не так Условие <IfModule mod_php5.c> проверяет, что PHP работает в mod_php. В этом случае можно менять настройки через директиву php_flag в файле .htaccess. Если php работает как FastCGI или PHP-CGI или suPHP, то добавление php_flag в .htaccess вызовет 500 Internal Server Error. Так что убирать это условие я не рекомендую. Это ничто иное как Good Practice (сама матчасть кратко описана во втором посте на http://stackoverflow.com/questions/...er-error-when-using-htaccess-for-php-settings).