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

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

  1. AS TRO

    AS TRO

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


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

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

    diller110

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

    Drumanid Дофенист

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

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

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

    bigbrain911

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

    Hinex

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

    AS TRO

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

    selax

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

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

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

    selax

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

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

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

    selax

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

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

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

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

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

    Kruzya Костылизируя некостылизируемое

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

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

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

    selax

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

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

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

    m22b

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

    Ну окей :)
     
  20. Tallanvor

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

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