Безопасность 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 было разорвано, подождите, пока мы пытаемся восстановить соединение.