• Agel_Nash

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

    @Agel_Nash Ясно, значит просто демонстрация. Я вас взломал! Чем докажешь? Вот вам префикс...
    Все же, кончено, смена префикса несколько замедлит процесс взлома. Ну очень на чуть-чуть))

    верно

    После его подбора можно так же идти в таблицу юзеров и подбирать их логин, а затем их пароль в виде хеша... А потом искать этот хеш на cmd5...

    Как хеш MODX Revo довольно трудно сбрутить. И cmd5 не поможет. Только если на заказ через фермы.

    Или все же эта дырка в ModX предусматривает возможность вносить изменения в базу? Запросы UPDATE или INSERT проходят?

    Все зависит от конкретного сайта.

    Давайте условимся на следующем. В MODX Revolution на текущий момент есть несколько дырок. Эксплуатация этих дырок усложняется рядом условий которые должен выполнить разрабочтик компонента.

    [Вырезано админом от любителей ломать сайты]

    P.S. После прочтения удалите мой комментарий. Чтобы на весь мир не светилось.

    написал в MODX - Вопросы и обсуждения Читать далее
  • Agel_Nash

    @timm Если правильно понял Евгения и opengeek, то эта дыра есть в компонентах написанных на xPDO в чистом MODx дыр нет.

    Есть. Но конкретно этой - нет.

    А в компонентах дыры потому, что разработчики были уверены, что xPDO фильтрует SQL, оказалось, что нет.

    Да.

    написал в MODX - Вопросы и обсуждения Читать далее
  • Agel_Nash

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

    Никто и ничего не отрубит. Проверка 1 символа = 1 запрос на сервер.

    Вот код от Евгения. По-моему это наёбка какая-то. Тут просто символ сравнивается с таким же в пароле, т.е. пароль заранее известен.

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

    ord($char) == ord($str[$i])
    

    мы будем сравнивать ответ от сервера. В этом и смысл слепой SQL-injection. Заставить отвечать сервер по разному если символ подошел и если не подошел. И демонстрацию этого способа я оставил за кадром.

    самый простой, по моему, способ защиты от слепых инъекций это просто ограничивать кол-во символов в параметре, чтобы ломатели не могли строить запросы типа

    Это способ не поможет, т.к. данные могут передаваться разными способами. GET, POST, COOKIE

    Лично в таком варианте, если ID должно быть числом и только числом, его можно просто приводить к типу Integer.

    Да. Такой фикс работает. Ищите упоминание Василия "спасибо за PR" в топике на modx.pro. Просто люди сразу не смекнули чего этот фикс делает.

    Еще вопросы? Или будем дальше утверждать, что я жути навожу?

    написал в MODX - Вопросы и обсуждения Читать далее
  • Agel_Nash

    @Andchir И это еще один перл. Префикс он прячет из системного конфига который виден только админу. Но Коле этого не объяснить - он же профи. Куда нам до него...

    написал в MODX - Вопросы и обсуждения Читать далее