Union после Limit?

Discussion in 'Уязвимости' started by presidentua, 24 Dec 2007.

  1. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Часто можна встретить такое утверждение, что невозможно использовать UNION после LIMIT.

    Но я почему то этому не хотел верить и на локалхосте создал тестовый скрипт со следующим запросом:
    PHP:
    SELECT FROM news WHERE id=1 LIMIT 1,1 UNION SELECT 1,2,3,4/*
    и оказалось что все нормально роботает!!!
    и это на:
    MySQL 4.1.13a-nt на localhost как root@localhost
    Даже можна использовать второй ЛИМИТ в конце. Тогда первый отвечает за первый запрос, а второй отвечает за общий (конечный) результат

    Но (как всегда :) ), есть бага на нескольких серверах после LIMIT и через МуСкул инекцию пытаюсь подобрать количество столбцов, но не получается постоянно вижу пустую страницу. Хотя я уверен что никакой фильтрации нет.

    Может это не во всех Мускулах работает? Может есть определенные условия? Посоветуйте!


    ПС: может кому-то интересен будет скрипт для подбора количества столбцов по ГЕТ. http://slil.ru/25277209
    Скажете зачем создавать новое. А потому что существующие (те которые мне попадались) меня не устраивают по таким причинам - нельзя залить на сервер, и то что хотят вместо меня думать :).
    пример параметров:
    [​IMG]
    пример роботы в тестовом режиме:
    [​IMG]
    в робочем режиме выводит запрос и результат от севера. А потом через поиск ищу нужную страницу.
     
    1 person likes this.
  2. Roba

    Roba Banned

    Joined:
    24 Oct 2007
    Messages:
    237
    Likes Received:
    299
    Reputations:
    165
    Извини, но эта тема много раз поднималась, и не раз говорилось, что инъект после лиминта возможен
     
  3. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Запросы на сервере могут, к примеру, оканчиваться точкой с запятой
     
  4. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    2presidentua
    попробуй:
    SELECT * FROM news WHERE id=1 order by 1 LIMIT 1,1 UNION SELECT 1,2,3,4

    будет ошибка неверного использования union и order by в этом вся и фигня, если в запросе используется order by, то инъекция после limit невозможна, если order by нет, то возможна инъекция, на практике чаще всего встречается первый вариант (с order by)

    вобщем делай выводы
     
    1 person likes this.
  5. presidentua

    presidentua милиционер Античата

    Joined:
    4 Nov 2007
    Messages:
    305
    Likes Received:
    236
    Reputations:
    15
    Спасибо всем, и особенно Scipio.
    через другую уязвимость залил шел и оказалось что действительно используется ORDER

    буду знать :)
     
    1 person likes this.