Взлом SourceBans, и как быть?

Тема в разделе "SourceBans", создана пользователем AS TRO, 11 сен 2016.

  1. AS TRO

    AS TRO

    Сообщения:
    1.058
    Симпатии:
    543
    Добро времени. Недавно мой проект взломали через обычный, обновленный до последней версии SourceBans.
    Приложу парочку логов, которые доступны только лютым пользователям)


    Есть какие предложения по этому поводу? В бд они очень хорошо покопались и изменили все что нужно и не нужно. В общем, хотелось бы услышать мнение людей, с опытом работы php и MySQL. Ибо в сб уже есть куча проверок на левые запросы. Тот же pages, там получаемое значение раз 5 проверяется на число...

    Хотел бы еще прочитать мнение от данных персон @The Night Fury и @Monomizer
     
    Последнее редактирование: 11 сен 2016
  2. diller110

    diller110

    Сообщения:
    262
    Симпатии:
    147
    @AS TRO, Ну собственно обычная SQL инъекция. Может особенность конкретной версии SB, с такой уязвимостью?
    Снимок3.PNG
    Лучше написать об этом разработчикам.
     
  3. Drumanid

    Drumanid Неактивный Read Only

    Сообщения:
    1.112
    Симпатии:
    588
  4. gibs

    gibs Фитиль народного волненья

    Сообщения:
    656
    Симпатии:
    216
    Ну а что ты хочешь услышать? Обычная sql инъекция, как уже и сказали. Это старая известная проблема сб. Особенно то, что параметры от залогиненых юзеров вообще не проверяются на валидность, что является серьезной проблемой для тех, кто продает админки через сб. Обновляй свой форк)
     
  5. bigbrain911

    bigbrain911 Гость

    Оффтоп
     
  6. Hinex

    Hinex

    Сообщения:
    78
    Симпатии:
    12
  7. AS TRO

    AS TRO

    Сообщения:
    1.058
    Симпатии:
    543
    А это просто проверка на id админа и проверка на числовое значение этого админа. Это по сути то... Но они проверяют не то, что я указал. Не pages...
     
  8. selax

    selax

    Сообщения:
    1.093
    Симпатии:
    250
    @AS TRO, не совсем так. Это приведение "любого" типа к типу integer. То есть любое значение $aid допустимо.
     
  9. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.230
    Симпатии:
    402
    @AS TRO, увы, я не кодер.
    Но при этом есть понимание, что без перелопачивания ОТ и ДО всего СБ - не обойтись.
    Защита от SQL-инъекций в PHP и MySQL - ИМХО, тут толково расписано, как стоит и как не надо делать...
     
  10. selax

    selax

    Сообщения:
    1.093
    Симпатии:
    250
    Это не продуктивно. Проще "с нуля" SourceBans переписать на каком нибудь фреймворке.
     
  11. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.230
    Симпатии:
    402
    Не поверишь, но я уже не раз задумывался об этом (как и о статистике)
    Но прикидывая, сколько это потянет в денежном эквиваленте, становится немного дурно....
     
  12. selax

    selax

    Сообщения:
    1.093
    Симпатии:
    250
    Нужен энтузиаст. В 2010 году у меня не сильно много времени ушло чтобы весь функционал веб части SB реализовать как модуль к IPB. Это всё при том, что у меня было очень поверхностное знание PHP.

    @AS TRO, я так понял инъекция делается с помощью кавычки, а что если в php.ini включить magic_quotes_gpc?
     
  13. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.230
    Симпатии:
    402
    Та вроде как на этот случай есть заплатка в коде:

    PHP:
             * @param boolean $magic_quotes If false, use mysqli_real_escape_string()
             *     if 
    you are quoting a string extracted from a POST/GET variable,
             *     
    then pass get_magic_quotes_gpc() as the second parameterThis will
             
    *     ensure that the variable is not quoted twiceonce by qstr() and
             *     
    once by the magic_quotes_gpc.
             *     
    Eg$s $db->qstr(_GET['name'],get_magic_quotes_gpc());
             * @return 
    string Quoted string
             
    */
            function 
    qstr($s$magic_quotes false)
            {
                    if (
    is_null($s)) return 'NULL';
                    if (!
    $magic_quotes) {
                            
    // mysqli_real_escape_string() throws a warning when the given
                            // connection is invalid
                            
    if (PHP_VERSION >= && $this->_connectionID) {
                                    return 
    "'" mysqli_real_escape_string($this->_connectionID$s) . "'";
                            }

                            if (
    $this->replaceQuote[0] == '\\') {
                                    
    $s adodb_str_replace(array('\\',"\0"), array('\\\\',"\\\0") ,$s);
                            }
                            return 
    "'" str_replace("'"$this->replaceQuote$s) . "'";
                    }
                    
    // undo magic quotes for "
                    
    $s str_replace('\\"','"',$s);
                    return 
    "'$s'";
            }
     
  14. selax

    selax

    Сообщения:
    1.093
    Симпатии:
    250
    @Tallanvor, я просто пытался с помощью этих строк хакнуть свой сб - не получилось. Когда не вижу проблемы не получается думать. :)
     
  15. Kr1kuzya

    Kr1kuzya Костылизируя некостылизируемое Ньюсмейкер

    Сообщения:
    2.569
    Симпатии:
    2.180
    @selax, энтузиасты всегда найдутся. Я вот лично не против переписать СБ с нуля. Но в одиночку при виде мегатонны кода - желание пропадает) Ибо займёт достаточно много времени
     
  16. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.230
    Симпатии:
    402
    @CrazyHackGUT, ну, мегатонны кода там только из-за того, что писалось с нуля и на коленке.
    Если использовать готовый фреймворк, то количество сокращается в разы, так или иначе.
    Плюс, некоторый функционал можно убрать (что-то не встречал ни разу прикреплённых демок к банам, например)
    Но и добавит некоторые вещи не помешает...
    Правда, это уже тема отдельного топика.
     
  17. selax

    selax

    Сообщения:
    1.093
    Симпатии:
    250
    @CrazyHackGUT, в том то и дело что там совсем не мегатонны. Если на фреймворке писать.
    --- Добавлено позже ---
    Я юзал, но несколько иначе. У меня была автозагрузке демок на сайт, и в переписанном SB по дате автоматически выбиралась она.
     
  18. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.230
    Симпатии:
    402
    То же самое делал))
    И да, так и можно реализовать, по типу опционального модуля.
     
  19. m22b

    m22b

    Сообщения:
    1.011
    Симпатии:
    210
    Скрытое содержимое, доступно для групп : Администраторы, Модераторы, Опытные, Супер-модераторы

    Ну окей :)
     
  20. Tallanvor

    Tallanvor Красноглазый

    Сообщения:
    1.230
    Симпатии:
    402
    @m22b, что тебя смущает?)
    Или ты "Опытные" не заметил? ;)