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

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

  1. AS TRO

    AS TRO

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


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

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

    diller110

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

    Drumanid Дилетант

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

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

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

    bigbrain911

    Сообщения:
    318
    Симпатии:
    23
    Оффтоп
     
  6. Hinex

    Hinex

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

    AS TRO

    Сообщения:
    1.056
    Симпатии:
    509
  8. selax

    selax

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

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

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

    selax

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

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

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

    selax

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

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

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

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

    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.044
    Симпатии:
    211
    @Tallanvor, я просто пытался с помощью этих строк хакнуть свой сб - не получилось. Когда не вижу проблемы не получается думать. :)
     
  15. CrazyHackGUT

    CrazyHackGUT Меня здесь нет

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

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

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

    selax

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

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

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

    m22b Read Only

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

    Ну окей :)
     
  20. Tallanvor

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

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