Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
5 Октябрь 2020

Почтовый спам — поиск и устранение уязвимости на примере Joomla

Сегодня с дата центра пришло сообщение, с жалобой на спам-абузы поступающие от spam-cop.net — соответственно, жалоба на почтовый спам с сайта одного из моих клиентов.
Сайт висит на выделенном виртуальном сервере, с выделенным IP адресом на котором хостится один единственный сайт — интернет-магазин под управлением Joomla CMS + virtuemart.
Механизм поиска уязвимости описанный ниже можно применять независимо от системы управления — главное понять, что за скрипт рассылает, а далее уже пофиксить это дело.

Первое, что я сделал — это в php.ini
добавил 2 строчки:

и перезапустил веб-сервер (не забываем вернуть назад, после разбора полётов)

Далее, через некоторое время в /var/log/php.mail.log я увидел, что рассылка ведётся из скрипта /libraries/phpmailer/phpmailer.php
Проанализировав время логов из этого файла и логов самого веб-сервера, вижу частые обращения по адресу /index.php?options=com_contact&id=1

Для того, чтобы понять откуда именно вызывается отправка сообщений в phpmailer.php я встроил в него собственное логирование

Анализ этих логов уже на 100% подтвердил, что проблема именно в компоненте com_contact, в который я встроил проверку — чтобы только авторизованные пользователи могли работать с этим компонентом (тут ключевой момент — вызов debug_backtrace() который показывает всю вложенность на уровне функций и самих скриптов

после чего спам прекратился

PS
Данное решение я применил, по аналогии с решением для компоненты com_mailto (которое тоже внедрил, на всякий случай)

которое я чуток переделал (см.выше), т.к. у меня ругался на метод JFactory::getUser()->authorise() который видимо с 3й версии в джумле …

Так же попутно, я пофиксил дыру в com_virtuemart так же позволяющую организовать спам рассылку с Вашего сайта — источник

Проверить можно по ссылке
http://ваш-сайт/index.php?page=shop.recommend&product_id=1&pop=1&tmpl=component&option=com_virtuemart&Itemid=1&vmcchk=1&Itemid=1

Фиксится добавлением редиректа на морду в начале файла /administrator/components/com_virtuemart/html/shop.recommend.php

рубрики: Joomla | Комментарии (1)

15 Ноябрь 2018

Joomla Fatal error: Class ‘JCache’ not found

Вчера клиент закосячил сайт на Joomla — попросил восстановить из бэкапа, что я и сделал — НО сайт не заработал!
Откатил ещё на более ранний бэкап — не пашет!
Включил отображение ошибок — Fatal error: Class ‘JCache’ not found in /libraries/joomla/factory.php on line XXX

Решение найдено, Вы когда бекапите или переносите, не забираете содержимое папки /libraries/joomla/cache
потому что в бекапщиках обычно стоит исключение папок cache, поэтому нужно дополнительно ее себе скопировать.

Вот такой вот курьёз 🙂

рубрики: Joomla | Комментарии (0)

7 Сентябрь 2016

Пример правильной поисковой оптизмизации сайта

Началось всё с простой просьбы моего родственника сменить уже устаревший дизайн на сайте remdvig.ru.
Организация занимается капитальным ремонтом электродвигателей и другими услугами связанными с восстановлением обмотки двигателя — в народе «перемотка электродвигателя«).
По прямым ссылкам уже понятно, что поисковой оптимизацией сайта тоже я занимаюсь 🙂
Так как услуг получилось не мало и двигать всё «мордой» никак не получалось, помимо редизайна было принято решение разделить услуги на отдельные страницы и провести работы по внутренней поисковой оптимизации — сказано, сделано.
Так же добавил немного естественных статейных ссылок со своих ресурсов, плюс прикупил ещё статеек с GoGetLinks. Для поведенческого фактора добавил рекламные компании в Яндекс Директ и MyTarget (помимо поведенческого ещё и непосредственно потенциальных клиентов с трафика получаем).
Результаты меня порадовали!
Первым хочу показать где в ТОП-10 выдачи, первые ШЕСТЬ!!! мест Яндекс отдал продвигаемому сайту.

Сложный ремонт электродвигателей Круто
Конечно 3х словник, ниша слабоконкурентна — но всё же! круто ведь! 🙂

ДО кучи — остальные результаты
Читать полностью »

рубрики: Joomla, SEO | Комментарии (0)

25 Август 2016

Сайт визитка за 15 000 рублей

Как мне не нравится делать сайты на бесплатных движках Joomla и подобных (уже далеко не один пост написан о проблемах безопасности Джумлы, и по факту — ломали уже неоднократно) — иногда реалии всё же обязывают выполнять такую работу. Как ни крути — далеко не у всех есть лишние деньги на лицензию 1С-Битрикс.
Да и в Джумле есть один очень весомый плюс — огромное количество бесплатных современных адаптивных красивых шаблонов для сайта.
Вот и сейчас — обратился ко мне родственник с просьбой переделать готовый сайт на движке Джумла… Переделывать на Битрикс с уникальным дизайном — жестоко и дорого!
Решили оставить джумлу — обновить движку до последней, найти и интегрировать шаблончик и провести кое какие работы по контенту и поисковой оптимизации страниц (разнёс услуги по отдельным страницам).
Сайт remdvig.ru — услуги по ремонту электродвигателей.
Стоимость работ по-родственному я оценил в 15 тысяч рублей.
По всем конкурентным запросам сайт в Новосибирской выдаче твёрдо входит в ТОП-10 Яндекса.
Это запросы «ремонт электродвигателей» и «перемотка электродвигателей»
а с региональной добавкой выходит в ТОПы не только Нска «ремонт электродвигателей в Новосибирске» «перемотка электродвигателей в Новосибирске»
Собственно, если нужно что нибудь подобное — обращайтесь, обсудим.

P.S.
Почему так дорого для визитки можете спросить Вы?
Отвечу — потому, что делаю сразу правильно, с внутренней поисковой оптимизацией страниц — Результат думаю позволит не мало сэкономить на рекламных компаниях для привлечения клиентов.

рубрики: Joomla, Сайтостроение | Комментарии (0)

13 Январь 2016

Как узнать версию Joomla

Собственно перед взламыванием сайта зачастую собирают информацию о платформе и её версии.
Если это джумла — добавляем к имени домена /language/en-GB/en-GB.xml и вуаля!

P.S.
Запись для себя, чтоб не забыть 🙂

рубрики: Joomla, security | Комментарии (0)

13 Январь 2016

Пример анализа взлома сайта Joomla и устранение причины проникновения com_contenthistory

Собственно, может кому интересно будет — небольшой пример из текущего (буду краток).
Гемор: джумла, за безопасностью которой особо никто не следит, потому что джумла!
По знакомству данный гемор лежит на моём серваке, где у меня ночью отрабатывает самописный скриптик по отлову изменений в скриптах, и информирует меня в случае оных.
Вот и проинформировал меня вчера о появлении нового скрипта » /images/stat.php < 92427 " Излюбленное место хранения бэкдоров и наиболее популярное для бэкдора название 🙂 Смотрим файло глазами:

видим обфусицированный код (если есть желание посмотреть исходный код — пробуем) исходник бэкдора
запускаем — форма пост запроса (вероятно пароль к бэкдору)
search

search


Зараза 100% — убиваем её!
Осталось одно НО! — если зараза проникла единожды, проникнет и вторично!
Первое, что делаем — меняем все пароли доступа (т.к. скорее всего они уже у хакера в базе).
Второе, нужно анализировать логи веб-сервера и искать непосредственно дыру: как именно был внедрён бэкдор?
Дату создания и модификацию файла бэкдора подменили (бывает и не меняют — искать в логах гораздо проще).
Далее недолгий анализ, насторожил меня GET запросами вида

"/?option=com_contenthistory&view=history&list[ordering]=&item_id=&type_id=&list[select]=polygon%28%28/*!00000select*/*/*!00000from*/%28/*!00000select*/*/*!00000from*/%28/*!00000select*/concat_ws%280x7e3a,%28/*!00000select*/concat_ws%280x7e3a,0x534b4f54494e4b494e,username,password,0x505343%29/*!00000from*/fot6h_users%20where%20id%20=%20710%29%29as%20mk%29%60%60%29%60%60%29%29"

С какого это перепугу, в запросе иньекции SQL кода ?! явно используя дыру хотят чего то из базы поиметь — админские пароли, куки и т.д. и т.п.
Далее гуглим про дыры в «com_contenthistory» и сразу всё становится на свои места 🙂
Искать заплатки по данной дыре — дело хозяина джумлы, я же на скорую руку просто затыкаю любые запросы с вхождением com_contenthistory в параметры через .htaccess

RewriteCond %{QUERY_STRING} com_contenthistory
RewriteRule .* - [F]

рубрики: Joomla, security | Комментарии (1)

2 Апрель 2015

Ссылки с профилей joomla k2

Как вариант, быстро «засветить» Яше интернет-аптеку рассматривал прогон по каталогам, и в поисках кандидатуры на сёрче случайно наткнулся на негативную ветку Заказал прогон по каталогам, а результата нет.
Почитал, слил любезно предоставленный отчёт и сайтами донорами и подумал, что с правильным подходом толк от такого прогона вполне возможен!
Правильный подход в том, чтобы «показать» Яндексу эти странички.
Для пробы, первый профиль создал «руками» — как ни странно, всё получилось 🙂
результат.
В голове сразу всплыла старая добрая схема автосабмиттера 🙂 собственно — решил «тряхнуть стариной» и реализовать на php такой сабмиттер (авто регистрация на joomla с размещением в профиле нужной мне информацию).
По сути такими действиями я ничего не нарушаю и не «порчу жизнь» никаким сайтам, в отличие, например, от постинга в форумы — регистрация свободная, информация размещаемая в профиле тоже свободна!
но и странички эти в отличие от форумных поисковики без прямых указаний на них никогда сами не увидят — тут нужно будет как то «помогать» (пока не продумал как это можно автоматизировать).
Читать полностью »

рубрики: Joomla, SEO, Полезности, Программирование, Размышления | 4 комментария

3 Февраль 2014

Делаем отзывы для Joomla — jcomments

Обращаются за помощью люди с сайтам на самых разнообразных CMS.
Сегодня вот понадобился инструмент Отзывы на сайте с движком Joomla.

Решение — использование модуля jcomments.
Качаем с оф.сайта последнюю stable версию, создаём меню, материал, вешаем его на менюшку (всё как обычно).
И материал подключаем jcomments — вставкой тега {jcomments on}.

Вуаля — отзывы готовы.
Правда в моём случае ещё пришлось немного поковыряться с css дабы в дизайн сайта подошло.

рубрики: CMS, Joomla | 3 комментария

  • Календарь
  • Март 2024
    Пн Вт Ср Чт Пт Сб Вс
    « Фев    
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • Архивы
  • Статистика LI