Недавно на одной из фрилансерских бирж наткнулся на объявление, где заказчик хотел изменить некоторые элементы меню, а также восстановить некоторые картинки, которые были удалены после взлома. Сам заказ был обычным — многие сейчас заводят себе сайты и блоги, но не разбираются как в нем что-либо менять. Я добавил себя в его предложение и спустя неделю заказчик вышел на меня. Он сразу признался, что сначала выбрал исполнителем другого человека, который запросил существенно меньше за работу. Но выбранный исполнитель за неделю нечего не сделал. И теперь вся надежда была на меня.
Список пожеланий состояли из 9 пунктов — добавить фотографии, вернуть на место удаленные плакаты, удалить часть текста. Ничего сложного на первый взгляд. Дальше началось интересное. Мне был предоставлен общий доступ к сайту и базам данных. Беглый осмотр показал, что сам сайт был сделан на движке Joomla! До этого момента я не работал с данной CMS, но общее представление о ней не имел. Ну, хорошо, подумал я. Мне нужен доступ к админке Joomla и сейчас быстро все сделаю. Ха-ха три раза. Заказчик сказал, что понятия не имеет ни про какие админки и все, что у него было для доступа к сайту, он мне предоставил.
Пришлось выпытывать у него подробности, связанные со взломом. Вкратце, история выглядела так. Сайт является визиткой модельного агенства в одном из крупных городов России. Кто-то из конкурентов каким-то образом сумел получить доступ к сайту и наломал там дров.
Вероломство взломщика заключалось в выборе нужного момента. На сервере делаются ежедневные бэкапы за последние десять дней в автоматическом режиме самим хостером. Взлом произошел в тот момент, когда хозяин сайта ушел в отпуск, который длился больше 10 дней. И когда он вернулся к работе и заметил взлом, то было уже поздно. Все бэкапы уже содержали взломанную версию сайта. По словам заказчика, сайт ему более-менее восстановили в прежнем виде. И ему нужно дальше наполнять его дальше.
Легко сказать — а как добавлять материал, если нет доступа к админке? И тогда пришлось изучать структуру сайта через FTP и phpMyAdmin.
Как я уже говорил, опыта работы с Joomla!, у меня не было. На сайте обнаружилась кнопка Вход, которая по идее должна вести в какую-то административную часть. С помощью всесильных Яндекса и Гугла, я узнал, как можно сбросить пароль суперадминистратора Joomla. Тут выяснилась любопытная подробность — в таблице базы данных хранились две учетных записи суперадминистраторов, у которых был указаны странные email-адреса. На всякий случай я запросил у заказчика информацию — вдруг это его адреса. Ответ был ошеломляющим — я знаю, чей этот адрес. Этой мой конкурент и теперь я знаю, кто был взломщиком. Немедленно удаляйте его адреса.
Однако, нешуточные страсти кипят в модельном бизнесе — в очередной раз удивился я. Просмотрел сайт — ничего такого сверхудивительного там не было. Кому сайт мог помешать, мне было не понятно.
Поменяв учетные данные на себя, стал разбираться, как вообще Joomla устроена. За два дня я излазил базу данных вдоль и поперек и выучил названия основных таблиц наизусть. Я нашел в базе, где хранятся сами страницы, меню и другая информация. Пришлось редактировать эти данные напрямую через phpMyAdmin и постоянно проверять на живом сайте на предмет ошибок. Вроде обошлось и я выполнил все пункты соглашения. Правда, если бы я знал, с чем мне придется столкнуться, запросил бы другую сумму. По сути я занимался хакерством, внося необходимые изменения вслепую. При этом всплыл один приятный бонус. После редактирования каждой страницы через вмешательство в базу данных, у страниц появлялся значок редактирования через веб-редактор, который был виден, если зайти на сайт под учетной записью администратора. Пусть это не полноценная админка Joomla, но тем не менее следующие правки контента на такой странице можно было делать более удобным способом. К счастью, страниц на сайте было немного, поэтому я быстро сначала отредактировал страницы через базу данных, а дальнейшие изменения делал через веб-интерфейс.
Работа над данным проектом обогатила мой опыт — я узнал, как работает Joomla изнутри. И хотя мне так и не удалось получить доступ к административной панели Joomla, тем не менее у меня было доступ к редактированию страниц. На усеченном уровне поддерживать сайт стало возможным. Копаясь в базе данных, я обнаружил еще два упоминания электронного адреса взломщика и удалил их. Заодно предложил хозяину площадки сменить движок на новую версию и создать сайт заново, чтобы была возможность полноценного управления сайтом. Хозяин обещал подумать.
Выполняя заказ, я мысленно пытался примерить ситуацию на себя. Что произойдет, если взломают мой блог? У меня не коммерческий блог, и финансовых потерь не будет. Но с другой стороны жалко терять материал, нажитый непосильным трудом. Видимо, надо как-то подумать на этим моментом. А если у вас есть свой блог — вы делаете резервные копии? А знаете, как поступать, если вдруг все пароли доступа станут недоступны?
На самом деле, это очень неприятная ситуация. Пусть у вас никогда не будет взломов. Берегите себя!
Да, сложно браться за что-то новое. Я чаще всего отказываюсь, когда сталкиваюсь с незнакомыми системами, а в вебе, с его зоопарком CMS и фрейморков, таких ситуаций полно. Но если случается и тем более получается сделать работу и обогатить свой опыт, позитива получаешь массу.