Безопасность ModX



  • Рекомендую ознакомиться с темой и предпринять меры https://modx.pro/security/10266-critical-vulnerability-in-modx-revolution/



  • Николай Ланец выложил код, который выполняется в Консоли (дополнение Console) для автоматической смены префиксов всех таблиц.
    https://modxclub.ru/topics/zapoved-dlya-paranoikov-ukazyivat-slozhnyij-table-prefix-pri-ustanovke-modx-2238.html



  • Этот функционал есть в phpmyadmin.

    Там ниже в комментариях пишут, что смена префикса не сильно поможет и все сайты на МодХ потенциально уязвимы


  • Администраторы

    Спасибо за ссылку! Я многое пропустил оказывается...

    Там ниже в комментариях пишут, что смена префикса не сильно поможет и все сайты на МодХ потенциально уязвимы

    Про брутфорс там сильно преувеличено. Надо делать побольше символов в префиксе, тогда сбрутить будет очень сложно.

    А пулл-реквест от Николая, на сколько я понял, поможет только от случаев, если у злоумышлиника есть доступ в админку (авторизация в контексте "mgr").



  • @Andchir сказал Безопасность ModX:

    Про брутфорс там сильно преувеличено. Надо делать побольше символов в префиксе, тогда сбрутить будет очень сложно.

    Судя по постам Евгения возможна посимвольная переборка, которая вроде бы быстрая.
    Хотя если так, то это даже не столько к MODx, а к устройству базы данных, если посимвольным перебором можно название таблицы получить.


  • Администраторы

    @slaad

    Судя по постам Евгения возможна посимвольная переборка, которая вроде бы быстрая.
    Хотя если так, то это даже не столько к MODx, а к устройству базы данных, если посимвольным перебором можно название таблицы получить.

    В его примере 4 символа, а если добавить ещё хотя бы парочку то сервак будет отрубать соединение по таймауту (если он настроен). Жути наводит зачем-то.

    И зачем брутфорсить какие-то префиксы, если с таким же успехом можно брутить пароль рута БД? На многих серверах разрешается удаленное соединение с БД, а SSH так и подавно. :)



  • @Andchir сказал Безопасность ModX:

    И зачем брутфорсить какие-то префиксы, если с таким же успехом можно брутить пароль рута БД? На многих серверах разрешается удаленное соединение с БД, а SSH так и подавно. :)

    Ну я в этом не силен, спорить не буду))
    Как я понял логику, брутить пароль можно только всей фразой целиком - т.е. если 2 символа от 0 до 9, то это 100 комбинаций (00, 01 и т.п.), а префикс бд можно вскрыть просто подбирая по очереди по одному символу т.е. всего 18 переборов (на первый от 0 до 9 и на второй столько же).
    А если таблицу так легко вскрыть, то из нее можно дальше пароль админа вытащить и все.



  • @slaad Нету там пароля, только хэш. Да и пароль уже не нужен если есть дыра в сайте, льем шелл и все...



  • Эта запись удалена!

  • Администраторы

    а префикс бд можно вскрыть просто подбирая по очереди по одному символу т.е. всего 18 переборов

    Вот код от Евгения:

    $str = 'fD3_';
    $chars = array_merge(range('a', 'z'), range('A', 'Z'), range('0', '9'), ['_']);
    $total = 0;
    $brut = '';
    $len = strlen($str);
    for($i = 0; $i < $len; $i++){
    	foreach($chars as $char){
    		$total++;
    		if(ord($char) == ord($str[$i])){// сравнение с символом в пароле
    			$brut .= $char;
    			continue 2;
    		}
    	}
    }
    print sprintf("By char: %s => %d\r\n", $brut, $total);
    

    По-моему это наёбка какая-то. Тут просто символ сравнивается с таким же в пароле, т.е. пароль заранее известен. MySQL будет возвращать каждый раз одинаковый результат и определить подошел ли один символ невозможно.



  • @Andchir не логично давать тебе такой код (с наебкой), ну он же не считает, что ты глупый и не поймешь... Может тут есть какая то логика... Явно, что код не полный.

    PS: Ответь лучше мне, что-нибудь ))) - http://forum.modx-shopkeeper.ru/topic/552/замена-input-на-select-в-корзине


  • Администраторы

    @Gulik

    не логично давать тебе такой код (с наебкой), ну он же не считает, что ты глупый и не поймешь... Может тут есть какая то логика... Явно, что код не полный.

    Логично давать не полный код со словами "кури код" :) ? По-моему это как раз не логично. К сожалению, спросить самого Евгения не могу, на modx.pro желания регистрироваться нет, но может кто из посетителей даст ему ссылку на это обсуждение.



  • Не знаю где там наебка или чего, но вот человек получил префикс modx.prohttps://modx.pro/security/10266-critical-vulnerability-in-modx-revolution/#comment-70625



  • @timm ну если уж такой 8KGWv7PW4w3u_ префикс достали, то банальным изменением префиксов на своих сайтах тут не защититься



  • В этом-то и жопа. Или разработчики ModX все закроют, или придется куда-то переезжать и осваивать новую систему управления. Хотя с другой стороны - Вордпресс живее всех живых



  • @timm фуууу, да это развод Наумкина, сам префикс выложил...



  • самый простой, по моему, способ защиты от слепых инъекций это просто ограничивать кол-во символов в параметре, чтобы ломатели не могли строить запросы типа: index.php?id=3+and+substring((select+column_name+from+information_schema.columns+where+table_name=0x6262325f7573657273+limit+1,1),1,1)='i'
    Лично в таком варианте, если ID должно быть числом и только числом, его можно просто приводить к типу Integer ( $id = (int) $_POST('id'); ).
    Ну а в остальном резать символы до 10-15 и инъекция не пройдет.



  • @Gulik сказал Безопасность ModX:

    @timm фуууу, да это развод Наумкина, сам префикс выложил...

    вы не правы, вот этот пост:
    https://modx.pro/security/10266-critical-vulnerability-in-modx-revolution/#comment-70625

    появился вчера, а остальные посты были сильно раньше.
    Зенит реально взломал modx pro



  • @slaad Да вот читайте с этого места, все станет ясно https://modx.pro/security/10266-critical-vulnerability-in-modx-revolution/#comment-70242


  • Администраторы

    @slaad

    Зенит реально взломал modx pro

    Да, но сомневаюсь, что с помощью кода навроде как Евгений кидал.

    Пока, например, я вижу такие изменения в компоненте Василия:
    https://github.com/bezumkin/Tickets/commit/b3251a12e557cc7c067a30e97594ba609c59f02d

    Для getProducts, думаю, это не страшно, т.к. он не использует xPDO. Но может там есть другие дыры, хотя везде используется PDO.



Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.