Евгений ака Agel_Nash в очередной раз нашел способ выполнять взлом MODX Revolution. По сути он объединил в данном случае сразу две более ранние уязвимости — подмена контекста в запросах к коннекторам, и, собственно, SQL-инъекции в xPDO. Первую уязвимость в свое время как бэ прикрыли в версии 2.2.8. Сейчас Евгений просто выполнил чуть другой финт, который позволяет сделать то же самое, и во вчерашнем релизе 2.2.13 добавили еще проверочку, которая защищает от подобного рода хаков (хотя я по прежнему убежден, что им следует дергать контекст из БД, убеждаясь, что запрошенный контекст действительно существует, а не просто играться с новым объектом). А вот саму уязвимость с SQL-инъекциями пока так и не закрыли, и это очень даже не хорошо. Могу точно сказать, что есть еще не мало способов выполнить этот эксплойт, так что они прикрыли только одну из кучи дверей, ведущих к данной дыре. Так что же делать, чтобы дополнительно обезопаситься от этого? Ответ прост — используйте другие названия для системных папок connectors, core, manager, а так же свой уникальный префикс для таблиц вместо _modx. Это в значительной степени повысит безопасность сайта, так как во-первых, надо знать где коннекторы, чтобы отправить на них атакующие запросы, а во-вторых, SQL-инъекция требует знания полного наименования таблицы, чего злоумышленник не может сделать, не получив конфиги сайта. Собственно, вкупе с этим и анонсирую новую сборку ShopModxBox. В ней как раз доработана корректная работа с кастомными системными папками и префиксами таблиц. То есть инсталлируете чистый MODX с кастомными конфигами, накатываете на него эту сборку и она будет работать нормально. Есть только один момент — хотя я и добавил в пространства имен плейсхолдеры-конфиги типа [[++core_path]], в момент снятия снимка эти конфиги источников файлов все равно конвертируются в абсолютные значения в соответствии с текущими конфигами сайта-источника, и потому в снимок попадают абсолютные значения. Итог — у вас часть источников файлов будет иметь некорректные пути. Их надо будет вручную поправить в настройках источников файлов. Еще такой момент: если кто-то хочет свой MODX-сайт изменить, чтобы в нем были другие папки и префиксы таблиц, то здесь опять-таки помогает vapor. Делаете им снимок текущего сайта, инсталлируете новый MODX Revo со своими кастомными папками и префиксами, и накатываете на него этот снимок. В большинстве случаев все будет ОК.
Всем привет Пакет автоматом устанавливается в web контекст, не смотря на то, что контекстом по умолчанию является совсем другой. Не знаю, почему, но я как-то с самого первого сайта стал все делать в контексте, отличном от стандартного. Попробую перенести все в другой контекст и протестировать, может и все будет нормально работать, но было бы шикарно, если бы все устанавливалось в контекст по умолчанию (index.php) Еще обратил внимание, что после установки язык Manager-а меняется на английский, никакх проблем переключить нет, конечно, но немного шокирует, особенно если привык работать в русском интерфейсе :-) Огромное спасибо за сборку, давно ждал реализацю магазина именно от вас, так как симпатизирую вашему подходу. И последнее, подскажите, как поддержать ваш проект через PayPal?
Добрый день! Уточняю на счет контекста, языка и т.п.: не раз говорил о том, что этот снимок сайта полностью затирает весь MODX, заливая свое поверх. При этом все таблицы, куда должно что-то записаться, предварительно очищаются. То есть если вы ставите чистый MODX Revolution, добавляете там новый контекст, меняете в настройках контекст по умолчанию и т.п. — все это перетирается при установке. Перенести в другой контекст на готовом магазине можно, но не просто. К сожалению, в MODX-е все завязанное на контекст не по id идет, а по имени контекста, то есть не достаточно просто в таблице изменить имя контекста. Огромное спасибо за сборку Огромное пожалуйста! :) И последнее, подскажите, как поддержать ваш проект через PayPal? А справа в блоке «Отблагодарить» указан PP-аккаунт — info@modxclub.ru Заранее спасибо!
На счет затирания я все понял, и даже уже не раз проверил :-) Проблему осознал, но все же попробую. Сейчас установил пакет, перенес все в другой контекст, сменил контекст по умолчанию в настройках… Все сбросил, обновил. Пока все работает, проблем никаких пока не обнаружил. А не подскажете, где могут быть прямые ссылки на контекст в сборке? Что бы обратить более пристальное внимание? Я не использую много контекстов, я просто использую другой вместо стандартного./ Небольшую благодарность отправил.
На счет смены контекстов — все же идея не очень удачная. В MODX-е далеко не идеально все сделано с контекстами. К примеру, не реализован полноценный механизм инициализации кастомных контекстов в запросах. Вот если у вас на сайт заходят пользователи, в index.php прописано по умолчанию $modx->initialize('web'); Даже если вы в плагине пропишите $modx->switchContext($ctx);, это все равно не будет корректно работать, так как инициализация пользователя выполняется именно во время инициализации контекста через $modx->initialize(). Это скажется на корректной инициализации пользователя, его правах и т.п. Здесь остается только один вариант — в index.php прописывать ручками нужный контекст. Второй момент — инициализация контекста в коннекторах. Проблема все та же… И по соображениям безопасности у нас в коннекторах жестко прописана инициализация контекста web (точнее жестко указываем, какой контекст инициализировать). Скорее всего, пока не появится корректный механизм по контекстам, так и останется по умолчанию web. В общем, советую все-таки оставлять по умолчанию контекст web. Это еще не все моменты. А не подскажете, где могут быть прямые ссылки на контекст в сборке? Что бы обратить более пристальное внимание? Вопрос не совсем понял. За благодарность спасибо! Получил.
Пожалуйста!
Здраствуйте Николай! Был вопрос, может быть я где то пропустил, но в мануалах нет по этому поводу ничего, что бы помогло мне. После установки Shopmodxbox на чистый Revolution, стирается запись в БД от старого админа (его логин и пароль), который был при установке. Вместо него встает новый admin. Я в настройках профиля сменил у этого админа логин и пароль. Далее выход из админки, а зайти обратно не могу. При новом заходе ошибка не выводиться, выдается обратно пустая форма входа. В БД таблица с сессиями не сломана. работает. То есть при новом вводе логина и пароля создается новая сессия. в БД она присутствует. Как можно решить данную проблему, подскажите пожалуйста хотя бы куда копать в поиске данной проблемы. Облазил уже форумы. Ответа который бы помог не нашел.
Добрый день! То, что удаляется старый пользователь, и создаются новые — это нормально. Когда накатывается сборка, тогда таблица юзеров очищается полностью, и создаются новые. Скорее всего все-таки вы в чем-то ошиблись при редактировании админа. Попробуйте накатить сборку заново, но не редактировать админа, а создать нового пользователя, и в случае успеха уже попробуйте админа отредактировать. На случай, если в админку вообще никак не войти, а надо очень (при этом есть доступ по ftp или типа того), открывайте файл manager/index.php и сразу после инициализации MODX-а ($modx->initialize()) пишите: $user = $modx->newObject('modUser', array( "username" => "myuername", "password" => "mypassword", )); $profile = $modx->newObject("modUserProfile", array( "email" => "myemail" )); $user->addOne($profile); $user->sudo = 1; $user->save(); return; После чего заходите на страничку админки и будет создан пользователь. Затем комментируете или удаляете этот код и заходите под новой учетной записью.
Срочно не надо. Попробовал как Вы сказали, создал нового пользователя. В настройках указал все тоже самое что у админа, кроме атрибутов (в дополнительном поле). Результат такой же, пустая форма при вводе логина и пароля.
Пришлите в личку адрес сайта, я посмотрю вечером что там и как (только базового пользователя admin оставьте)
Тогда пробуйте на нормальном сервере. Скорее всего что-то не то с локальным сервером.
Не за что!
Николай, доброго дня! Установил ShopModxBox на чистый Revo. Не пойму что не так, ибо абсолютный нуб в modx, но при попытке просмотра любой из страниц, кроме главной ничего не вижу: «The requested URL /o-shopmodxbox.html was not found on this server.» Главная работает нормально… Пожалуйста, подскажите в чем я ошибся?
Проблема не в модэксе, а в подмене УРЛов. Там ЧПУ, соответственно надо правила подмены прописывать. Если у вас веб-сервер апач, то в корне сайта просто переименуйте ht.access в .htaccess
Или не апач, а нгинкс используется, или правила не учитываются. В любом случае, это вопрос к веб-серверу, а не к MODX-у. Здесь вам самостоятельно придется разбираться.
Не за что!
Нашел! Вдруг кому пригодится, оставлю здесь: dig.org.ua/2008/01/26/mod-rewrite-on-apache2-in-ubuntu/
Ну да, не было мода для апача, поэтому и правила не учитывались.
Попробовал установить вашу сборку, сделал как все сказали, установилась за 36 секунд. Но появилась проблема, исчезло верхнее меню. Устанавливал на чистый modx-2.3.1-pl В чем причина не подскажете? Хостюсь на hostgator.com Apache: 2.2.26 PHP: 5.4.29 Хотя странно при обновлении Resizer написал [Resizer] PHP version: 5.2.17 Resizer requires PHP 5.3.2 or higher В чем прикол не могу понять, версия на сервере PHP: 5.4.29 вроде как. .htaccess изменил.
Проблема в том, что ставите на 2.3.1 (там внутряк весь изменили). Ставить надо на 2.2+ (сейчас актуальная 2.2.15).
Попробовал установить 2.2.15 после установки при заходе в админку пишет ошибку syntax error: и блок "Недавно редактированные ресурсы" постоянно грузится и не может подгрузиться, соответственно ничего не работает. В чем прикол?
Шлите мне на n.lanets@modxclub.ru адрес админки и логин/пароль в нее, я гляну. Судя по всему ошибка разбора JSON.
Сейчас гляну.
Все встало без проблем, никаких ошибок не наблюдаю. Проверяйте. Логин/пароль поставил как присылали.
После установки shopModx первым способом при попытке открыть любую страницу кроме Главной, выдается сообщение Not Found The requested URL /index.php was not found on this server. Что может быть не так в моем случае?
Смотрите подмену УРЛов (на уровне .htaccess или nginx, смотря что и как у вас на сервере настроено). Особо вам никто не поможет, так как это вопрос в хостинге, а не в MODX-е.
Походу, ссылки на статью надо менять на такой вид, сайт Борисова взломали и уничтожили. Шучу конечно, просто он его отключил наверно.
Можем все-таки заработает :) А народ пусть вебархивами учится пользоваться)