[help] Проверка запроса на инъекцию

Тема в разделе "Базы данных", создана пользователем [iq], 15 апр 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. [iq]

    [iq]

    Регистр.:
    17 июл 2007
    Сообщения:
    201
    Симпатии:
    44
    Возник вопрос по безопасности/взлому:

    Представим у нас есть запрос:

    Код:
    select lala from table where pole = \'' . $value . '\'
    Возможно ли подстановкой определенной строки (c функциями char(),hex-строки или AES_ENCRYPT()) вместо $value, совершить иньекцию?
    Замечу есть одна загвоздка: $value фильтруется на наличе ' и \. При чем вместо кавычка и слэш удваиваются.

    Прошу помочь.

    ЗЫ все конечно происходит в MySql.
     
  2. RomAndry

    RomAndry Постоялец

    Регистр.:
    21 ноя 2007
    Сообщения:
    102
    Симпатии:
    24
    Хорошая статья slashes
     
  3. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Составить SQL-инъекцию не получится, т.к. все что ты введешь будет в ковычках ' '. Выйти из них ты не сможешь, т.к. идет фильтрация.

    p.s. Статья бред...ну может лет 6 назад она не была бредом, но сейчас ее актуальность = 0.
     
  4. [iq]

    [iq]

    Регистр.:
    17 июл 2007
    Сообщения:
    201
    Симпатии:
    44
    мда..т.е. мускул не смотрит на наличие в строках функций..хреново.

    Статья..видел подобных уже очень много.

    Значит, надо искать другую уязвимость...
     
  5. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    Можно по пунктам, что там бред?

    magic_quotes_gpc не бывает включен на хостинге?

    mysql_real_escape_string() для обработки добавляемых в sql запрос значений для mysql использовать не нужно?

    Добавлено через 1 минуту
    Объясни мне, что там и куда он должен смотреть? Какие такие функции?

    Дай примеры других статей?
     
  6. [iq]

    [iq]

    Регистр.:
    17 июл 2007
    Сообщения:
    201
    Симпатии:
    44
    http://www.mysql.ru/docs/man/String_functions.html вот отличный список функций.
    Дело в том, что если ты не заметил, говорили об обходе следующего метода защиты, в первом посте, чтобы совершить инъекцию.
    А так как кавычки удваиваются, то строка куда вставляется $value всегда будет открыта, а как показали запросы (тестил через пхпмайадмин) интерпретатор sql не смотрит на наличие функций в строках (т.е. между ковычками).

    Статью рассматривал только с точки зрения инъекций, а поэтому все(почти все) видел в различных других статьях (конечно же, не целиком). Примеры щас не могу дать, так как читал и смотрел их очень много всего за пару дней и увидел, что все они в основном одинаковы +- что-то.

    А так полезно почитать сборник статей выложенный здесь, некоторые статьи на inattack.ru и на хакере.

    ЗЫ и что за такое недовольство в посте, fpinger? Это я должен недовольствоваться, что не нашлось решения проблемы)
     
  7. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Нельзя, если сравнишь эту статью, со статьями написанными более в современные года, то увидишь большую разницу. В твоей статье, показаны самые азы, щас информации по теме скули, просто море новой.

    Ты понимаешь, тут вот какое дело...Даже если на серве будут правильно работать mysql_real_escape_string и magic_quotes_gpc (можно по отдельности, это неважно)...Это дает тока 50% защиты от скули, иначе, тебя успешно взломают той же скулей.

    Ну правильно делает)) Ты данные можешь передавать как числа или как текст. Текст всегда должен обрамлятся ковычками. Числа - необязательно. Если бы функции базы парсились в тексте, прикинь скока гемороя былоб, вон на форуме, кто-нить использовал какую-либо функцию из базы, а база ее пропарсила и выполнила) тогда пришлось, каждую функцию перед отправкой в базу парсить, экранить, кодировать и т.д. )))
     
  8. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    Гы. Вот если бы прочли и применили статью, которую тут некоторые называют устаревшей, то поняли, что всё что вы несёте полный бред. Значения вставляются в sql запрос в определённых местах. Значения эти достаточно либо привести к нужному типу (например целому числу), либо, если они строковые, обработать через mysql_real_escape_string(). Никакая иньекция тогда не грозит.

    Я попросил ссылочки на подобные статьи. Их вы не предоставили. Посему считаю вас болоболкой. И ещё. Ту статью не нужно рассматривать. Её нужно применять. Если не доросли, перечтите ещё раз нацать.

    Добавлено через 10 минут
    Не видел я ваших новых статей. Только ваши рассуждения пустые. А в статье той дано всё что достаточно. Она вполне спасает от sql иньекций.

    Примеры в студию. Нету? Балоболем в пустую? От sql иньекций та статья даёт 100% защиту. Она не защищает от ламеров, которые занимаются рассуждалками и не применяют, то что в ней дано.


    Я вас удивлю. Вы опять показали проф непригодность. Любая функция - это всего лишь обычные данные, если пропущена через
    mysql_real_escape_string или её аналоги для других БД.

    И ещё. Для особо умных. Не нужно путать sql иньекции крос сайт скриптинг, использующий JavaScript. Так что вникните вначале в тему, а потом балобольте.
     
  9. [iq]

    [iq]

    Регистр.:
    17 июл 2007
    Сообщения:
    201
    Симпатии:
    44
    Да. Но меня же я спрашивал про Данный Конкретный случай, как в нем, если возможно провести инъекцию. А не про методы защиты(хотя, конечно, это все пересекается).
     
  10. fpinger

    fpinger

    Регистр.:
    11 май 2007
    Сообщения:
    253
    Симпатии:
    58
    Тоесть вы опять не прочли статью? Извените, вам больше ничто и никто не поможет.
     
Статус темы:
Закрыта.