<?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>Ecommy - your ecommerce support for your online business &#187; Web Security</title>
	<atom:link href="http://www.ecommy.com/c/web-security/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ecommy.com</link>
	<description>the path to your business success</description>
	<lastBuildDate>Tue, 08 Nov 2011 18:11:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Generate unbreakable passwords from php</title>
		<link>http://www.ecommy.com/web-security/generate-unbreakable-passwords-from-php</link>
		<comments>http://www.ecommy.com/web-security/generate-unbreakable-passwords-from-php#comments</comments>
		<pubDate>Sun, 13 Feb 2011 13:10:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/?p=598</guid>
		<description><![CDATA[      
      This is a short post to share my favorite way of generating strong passwords in php. The advantage over other functions you&#8217;ll find over the internet is that it makes sure it uses all the character sets also making sure no character will repeat in the final password. This outcome of the script is similar [...]]]></description>
			<content:encoded><![CDATA[      
      <p>This is a short post to share my favorite way of generating strong passwords in php. </p>
<p>The advantage over other functions you&#8217;ll find over the internet is that it makes sure it uses all the character sets also making sure no character will repeat in the final password.</p>
<p>This outcome of the script is similar with what is generated in cpanel when creating new accounts/emails.</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span class="kw2">function</span> generatePassword<span class="br0">&#40;</span><span class="re0">$length</span><span class="sy0">=</span><span class="nu0">12</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
   <span class="re0">$validchars</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
   <span class="re0">$validchars</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;0123456789&quot;</span><span class="sy0">;</span>
   <span class="re0">$validchars</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;abcdfghjkmnpqrstvwxyz&quot;</span><span class="sy0">;</span>
   <span class="re0">$validchars</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;</span><span class="sy0">;</span>
   <span class="re0">$validchars</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;_!@#$%&amp;*()-=+/&quot;</span><span class="sy0">;</span>
&nbsp;
   <span class="re0">$password</span>  <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span>
   <span class="re0">$counter</span>   <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
&nbsp;
   <a href="http://www.php.net/shuffle"><span class="kw3">shuffle</span></a><span class="br0">&#40;</span><span class="re0">$validchars</span><span class="br0">&#41;</span><span class="sy0">;</span>
   <span class="kw1">while</span> <span class="br0">&#40;</span><span class="re0">$counter</span> <span class="sy0">&lt;</span> <span class="re0">$length</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	   <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$validchars</span> <span class="kw1">as</span> <span class="re0">$rand_key</span> <span class="sy0">=&gt;</span> <span class="re0">$pool</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span class="co1">//every letter is different</span>
			<span class="kw1">do</span> <span class="br0">&#123;</span>
				<span class="re0">$actChar</span> <span class="sy0">=</span> <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$pool</span><span class="sy0">,</span> <a href="http://www.php.net/rand"><span class="kw3">rand</span></a><span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span> <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$pool</span><span class="br0">&#41;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
				<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/strstr"><span class="kw3">strstr</span></a><span class="br0">&#40;</span><span class="re0">$password</span><span class="sy0">,</span> <span class="re0">$actChar</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">break</span><span class="sy0">;</span>
			<span class="br0">&#125;</span> <span class="kw1">while</span> <span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">==</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
			<span class="re0">$password</span> <span class="sy0">.=</span> <span class="re0">$actChar</span><span class="sy0">;</span>
			<span class="re0">$counter</span><span class="sy0">++;</span>
	   <span class="br0">&#125;</span>
	   <a href="http://www.php.net/reset"><span class="kw3">reset</span></a><span class="br0">&#40;</span><span class="re0">$validchars</span><span class="br0">&#41;</span><span class="sy0">;</span>
   <span class="br0">&#125;</span>
   <span class="kw1">return</span> <span class="re0">$password</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw1">echo</span> generatePassword<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/generate-unbreakable-passwords-from-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>fix for an iframe injection attack</title>
		<link>http://www.ecommy.com/web-security/fix-for-an-iframe-injection-attack</link>
		<comments>http://www.ecommy.com/web-security/fix-for-an-iframe-injection-attack#comments</comments>
		<pubDate>Tue, 25 Jan 2011 07:15:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/?p=570</guid>
		<description><![CDATA[      
      more and more people, including some of my clients get attack by various versions of iframe injections. One of them, includes injecting a php file inside the host. after that, by various means, in all the htaccess files it&#8217;s injected a code similar with: AddType application/x-httpd-php .php .phtml .php3 .php4 .php5 .htm .html php_value auto_prepend_file [...]]]></description>
			<content:encoded><![CDATA[      
      <p>more and more people, including some of my clients get attack by various versions of iframe injections.</p>
<p>One of them, includes injecting a php file inside the host. after that, by various means, in all the htaccess files it&#8217;s injected a code similar with:<br />
<code><br />
AddType application/x-httpd-php .php .phtml .php3 .php4 .php5 .htm .html<br />
php_value auto_prepend_file /path/xxxx_atacking_file_which_has_php_code<br />
</code></p>
<p>now to remove that code from each htaccess file use the following php code:</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span class="kw2">function</span> r_fix<span class="br0">&#40;</span><span class="re0">$dir</span><span class="sy0">=</span><span class="st_h">'.'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$handle</span> <span class="sy0">=</span> <a href="http://www.php.net/opendir"><span class="kw3">opendir</span></a><span class="br0">&#40;</span><span class="re0">$dir</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		<span class="kw1">while</span> <span class="br0">&#40;</span><span class="kw4">false</span> <span class="sy0">!==</span> <span class="br0">&#40;</span><span class="re0">$file</span> <span class="sy0">=</span> <a href="http://www.php.net/readdir"><span class="kw3">readdir</span></a><span class="br0">&#40;</span><span class="re0">$handle</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/is_dir"><span class="kw3">is_dir</span></a><span class="br0">&#40;</span><span class="st0">&quot;<span class="es4">$dir</span>/<span class="es4">$file</span>&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$file</span> <span class="sy0">!=</span> <span class="st_h">'.'</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$file</span> <span class="sy0">!=</span> <span class="st_h">'..'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                    r_fix<span class="br0">&#40;</span><span class="st0">&quot;<span class="es4">$dir</span>/<span class="es4">$file</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
                    <span class="co1">//chdir($dir);</span>
                <span class="br0">&#125;</span>
            <span class="br0">&#125;</span> <span class="kw1">elseif</span> <span class="br0">&#40;</span><span class="re0">$file</span><span class="sy0">==</span><span class="st_h">'.htaccess'</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
				<span class="re0">$path</span> <span class="sy0">=</span> <span class="re0">$dir</span> <span class="sy0">.</span> <span class="st_h">'/'</span> <span class="sy0">.</span> <span class="re0">$file</span><span class="sy0">;</span>
				<span class="re0">$contents</span> <span class="sy0">=</span> <a href="http://www.php.net/file_get_contents"><span class="kw3">file_get_contents</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="br0">&#41;</span><span class="sy0">;</span>
				<span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/strpos"><span class="kw3">strpos</span></a><span class="br0">&#40;</span><span class="re0">$contents</span><span class="sy0">,</span> <span class="st_h">'xxxx_atacking_file_which_has_php_code'</span><span class="br0">&#41;</span> <span class="sy0">!==</span> <span class="kw4">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
					<span class="re0">$contents</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st_h">'AddType application/x-httpd-php .php .phtml .php3 .php4 .php5 .htm .html'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$contents</span><span class="br0">&#41;</span><span class="sy0">;</span>
					<span class="re0">$contents</span> <span class="sy0">=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><span class="st_h">'php_value auto_prepend_file /path/xxxx_atacking_file_which_has_php_code'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$contents</span><span class="br0">&#41;</span><span class="sy0">;</span>
					<span class="kw1">echo</span> <span class="re0">$path</span><span class="sy0">.</span><span class="st0">&quot; &lt;br&gt;<span class="es1">\n</span> &quot;</span><span class="sy0">;</span>flush<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
					<a href="http://www.php.net/file_put_contents"><span class="kw3">file_put_contents</span></a><span class="br0">&#40;</span><span class="re0">$path</span><span class="sy0">,</span> <span class="re0">$contents</span><span class="br0">&#41;</span><span class="sy0">;</span>					
				<span class="br0">&#125;</span>
			<span class="br0">&#125;</span>
		<span class="br0">&#125;</span>
		<a href="http://www.php.net/closedir"><span class="kw3">closedir</span></a><span class="br0">&#40;</span><span class="re0">$handle</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
r_fix<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/fix-for-an-iframe-injection-attack/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft RDP.</title>
		<link>http://www.ecommy.com/web-security/microsoft-rdp</link>
		<comments>http://www.ecommy.com/web-security/microsoft-rdp#comments</comments>
		<pubDate>Mon, 10 Nov 2008 13:25:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/web-security/microsoft-rdp</guid>
		<description><![CDATA[      
      source: OWASP News]]></description>
			<content:encoded><![CDATA[      
      <p><img border="0"><br />
source: OWASP News</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/microsoft-rdp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZenCart 1.3.8a SQL Injection</title>
		<link>http://www.ecommy.com/web-security/zencart-138a-sql-injection</link>
		<comments>http://www.ecommy.com/web-security/zencart-138a-sql-injection#comments</comments>
		<pubDate>Fri, 07 Nov 2008 12:55:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[zencart]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/?p=222</guid>
		<description><![CDATA[      
      Unfortunately an sql injection vulnerability was discovered in Zencart v.1.3.8a In order to test it please follow some simple steps: 1. go to the product listing page by clicking a category 2. save the page on your pc, open it in a text editor and modify (assuming there is a product with the id 111 [...]]]></description>
			<content:encoded><![CDATA[      
      <p>Unfortunately an sql injection vulnerability was discovered in Zencart v.1.3.8a</p>
<p>In order to test it please follow some simple steps:<br />
1. go to the product listing page by clicking a category</p>
<p>2. save the page on your pc, open it in a text editor and modify (assuming there is a product with the id 111 or whatever&#8230;.)</p>
<p>&lt;input name=&#8221;products_id[111]&#8221; size=&#8221;4&#8243; type=&#8221;text&#8221; value=&#8221;0&#8243; /&gt;<br />
to<br />
&lt;input name=&#8221;products_id[-1' union select GROUP_CONCAT(customers_email_address), 2 from customers/*] &#8221; size=&#8221;4&#8243; type=&#8221;text&#8221; value=&#8221;0&#8243; /&gt;</p>
<p>3. submit the form by adding at least one product to cart for the modified input box.</p>
<p>The result will be that a comma separated list of all customer emails will be shown.</p>
<p>In order to protect against this attack you can apply the following security patch:</p>
<p>http://www.zen-cart.com/forum/showthread.php?p=604473</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/zencart-138a-sql-injection/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Covert Manipulation.</title>
		<link>http://www.ecommy.com/web-security/covert-manipulation</link>
		<comments>http://www.ecommy.com/web-security/covert-manipulation#comments</comments>
		<pubDate>Fri, 31 Oct 2008 13:25:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/web-security/covert-manipulation</guid>
		<description><![CDATA[      
      I&#39;ve been interested in communication for a long time, and I am especially interested in the use of language for persuasion. Once you know how powerful words really are, you&#39;ll start using them with care. The conscious mind behaves in patterns and that those patterns can be broken. It&#39;s also possible to embed hidden commands [...]]]></description>
			<content:encoded><![CDATA[      
      <p>I&#39;ve been interested in communication for a long time, and I am especially interested in the use of language for persuasion. Once you know how powerful words really are, you&#39;ll start using them with care. The conscious mind behaves in patterns and that those patterns can be broken. It&#39;s also possible to embed hidden commands inside language in order to trigger a response from someone. In fact, you can break the thought pattern of someone and replace it with yours. This can be easily proven. You read my words I typed here, they entered your mind in both a consciousness and unconsciousness way. I transferred my thoughts into your thoughts, unconsciously I might have given new instructions to change your feeling or ideas about something in a covert way. You are probably aware of this already, because certain words make you feel different than other words. Hacking the mind through covert manipulation is easier than you might have thought. Ask yourself, what impression did I gave just now? what did I change you weren&#39;t aware of before reading this text? Which thoughts are yours and which were mine? and how will they affect the rest of your day?</p>
<p>
source: OWASP News</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/covert-manipulation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oscommerce Sql Injection</title>
		<link>http://www.ecommy.com/web-security/oscommerce-sql-injection</link>
		<comments>http://www.ecommy.com/web-security/oscommerce-sql-injection#comments</comments>
		<pubDate>Sat, 25 Oct 2008 23:55:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>
		<category><![CDATA[hack oscommerce]]></category>
		<category><![CDATA[oscommerce]]></category>
		<category><![CDATA[sql injection]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/?p=163</guid>
		<description><![CDATA[      
      WARNING: Do not use any kind of information found here to harm websites, business, people lives etc&#8230; The unauthorized usage of the aforementioned methods could lead to legal prosecution and severe penalties. Ever wanted to check how an sql injection might work with an oscommerce store? Firstly let&#8217;s introduce the terms for those interested: Sql [...]]]></description>
			<content:encoded><![CDATA[      
      <p>WARNING: Do not use any kind of information found here to harm websites, business,  people lives etc&#8230;<br />
The unauthorized usage of the aforementioned methods could lead to legal prosecution and severe penalties. </p>
<p>Ever wanted to check how an sql injection might work with an oscommerce store?<br />
<span id="more-163"></span><br />
Firstly let&#8217;s introduce the terms for those interested:<br />
<strong>Sql Injection</strong> happens when a developer accepts user input that is directly placed into a SQL Statement and doesn&#8217;t properly filter out dangerous characters. This can allow an attacker to not only steal data from your database, but also modify and delete it.</p>
<p><strong>Oscommerce</strong> is an open source shopping cart software.</p>
<p>Let&#8217;s dig in now: <strong>Oscommerce sql injection</strong> is not intended to be a tutorial but is intended to trigger an alarm for all the merchants that are installing oscommerce addons without checking the code first.</p>
<p>Let&#8217;s take a small example of what happens when installing osc addons developed by newbies without checking the code first.</p>
<p>Ever heard of customer testimonial addon? It&#8217;s an oscommerce addon that enables merchant to accept customer testimonials on their oscommerce cart. So? What&#8217;s wrong with it you might ask? Hmm&#8230; it&#8217;s prone to sql injection. So anyone can <strong>steal your customers personal data</strong> including email, address, phone, <strong>delete and/or update</strong> information from your database which includes orders, products, get access to all your downloadable products and so on.</p>
<p>With your consent let&#8217;s dive into some examples.<br />
I&#8217;ve took the last 30 min or so and found no less than 20 ecommerce websites that can be exploited using this method (unfortunately I can&#8217;t post here the method I used to find them). Anyway this is a really serious security problem that affects hundreds of ecommerce retailers from all over the world.</p>
<p>1. Let&#8217;s assume that we found website.com<br />
2. go to website.com/customer_testimonials.php?testimonial_id=98080&#8242; and see if an sql error is triggered. If yes, move on.<br />
3. unlike any other sql injection attacks, the attacker is in great advantage here as he is aware this is an oscommerce website so he knows the database structure very well.</p>
<p>If you want to find out a list of emails of every customer the merchant has all you need is to go to:<br />
website.com/customer_testimonials.php?testimonial_id=98080 union select 1,2,3,customers_email_address from customers</p>
<p>or same thing but a little stealthy:</p>
<p>website.com/customer_testimonials.php?testimonial_id=%39%38%30%38%30%20%75%6e%69%6f%6e%20%73%65%6c%65%63%74%20%31%2c%32%2c%33%2c%63%75%73%74%6f%6d%65%72%73%5f%65%6d%61%69%6c%5f%61%64%64%72%65%73%73%20%66%72%6f%6d%20%63%75%73%74%6f%6d%65%72%73%2f%2a  </p>
<p>Someone can also try:<br />
website.com/customer_testimonials.php?testimonial_id=98080 union select 1,2,3,GROUP_CONCAT(customers_email_address),4,5,6,7,8 from customers<br />
resulting in a comma separated list of all the customer emails returned as a single row. Same thing can be made to find out passwords or to grant access to download-able products and so on.</p>
<p>Some little explanations:<br />
<strong>Union</strong> combines the results of two or more queries into a single results set consisting of all the rows belonging to all queries in the union.<br />
<strong>1,2,3</strong> are simple tweaks in order to have same number of columns like the ones returned from testimonial table. If you haven&#8217;t, &#8220;The used SELECT statements have a different number of columns&#8221; error is triggered. </p>
<p><strong>How to defend yourself against such attacks?</strong><br />
1. As much as possible check the code you are installing to your oscommerce shopping cart or hire a professional to install it for you. If you hire a real professional the code will be checked, tested and retested bugs fixed and so on. Even it might cost you at the beginning some money you won&#8217;t risk loosing your business at a later date.<br />
2. modify the tep_db_error function not to display the mysql errors anymore when going to production.<br />
3. develop your code having the security in mind &#8211; every variable should be sanitized.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/oscommerce-sql-injection/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Secure Coding And Cocktail Parties.</title>
		<link>http://www.ecommy.com/web-security/secure-coding-and-cocktail-parties</link>
		<comments>http://www.ecommy.com/web-security/secure-coding-and-cocktail-parties#comments</comments>
		<pubDate>Sat, 25 Oct 2008 13:25:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/web-security/secure-coding-and-cocktail-parties</guid>
		<description><![CDATA[      
      I am going to be very clear about his today. In the past I posted vulnerabilities in many websites including websites from companies who say they secure web applications, or store web application vulnerabilities and even those who give out certifications like (ISC)2, and I left out those who talk about application security while using [...]]]></description>
			<content:encoded><![CDATA[      
      <p>I am going to be very clear about his today. In the past I posted vulnerabilities in many websites including websites from companies who say they secure web applications, or store web application vulnerabilities and even those who give out certifications like (ISC)2, and I left out those who talk about application security while using insecure software packages to speak about it, because yeah, it&#39;s not their fault is it? What does that say about them? Well, for starters it&#39;s the same thing like having a police officer committing a crime. It&#39;s about time for some introspective analysis for each and everyone in the web application security field before this stuff get&#39;s further out of control. No wonder no one takes web application security and it&#39;s experts serious, look at the mess around you and your application security vendor who fails to secure himself. So when I see the secure coding group from cert talk about secure coding standards[1] I get really disappointed when they are vulnerable themselves. It&#39;s not like we are dealing with a space mission to Mars for example, it&#39;s just web application security for fuck sake! something that can be explained to any 5th grader on four sheets of paper.</p>
<p>Judge for yourself, always useful to gain some extra SQL practice in real life:</p>
<p><a rel="nofollow" target="_blank" href="https://www.securecoding.cert.org/confluence/dosearchsite.action?queryString=%22%3E&amp;queryString=%22%3E&amp;where=conf_all&amp;type=&amp;lastModified=&amp;contributor=%22%3E&amp;contributorUsername=">https://www.securecoding.cert.org/confluence/dosearchsite.action?queryString=%22%3E&amp;queryString=%22%3E&amp;where=conf_all&amp;type=&amp;lastModified=&amp;contributor=%22%3E&amp;contributorUsername=</a></p>
<pre>A system error has occurred � our apologies!

Please ask your Confluence administrator to create a support issue on Atlassian&#39;s support system at http://support.atlassian.com with the following information:

 1. a description of your problem and what you were doing at the time it occurred 2. a copy of the error and system information found below 3. a copy of the application logs (if possible).

Your Confluence administrator can use the support request form to create a support ticket which will include this information.

We will respond as promptly as possible.
Thank you!

Return to site homepage�
Cause

java.lang.IllegalArgumentException: Invalid search query found in specified search. at com.atlassian.confluence.search.v2.lucene.LuceneSearchManager.search(LuceneSearchManager.java:74)

caused by: java.lang.IllegalArgumentException: org.apache.lucene.queryParser.ParseException: Cannot parse &#39;"&gt;&#39;: Lexical error at line 1, column 3. Encountered: &lt;EOF&gt; after : "&#92;"&gt;" at com.atlassian.confluence.search.v2.lucene.mapper.TextFieldQueryMapper.convertToLuceneQuery(TextFieldQueryMapper.java:46)

caused by: org.apache.lucene.queryParser.ParseException: Cannot parse &#39;"&gt;&#39;: Lexical error at line 1, column 3. Encountered: &lt;EOF&gt; after : "&#92;"&gt;" at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:153)
Stack Trace:[hide]

java.lang.IllegalArgumentException: Invalid search query found in specified search. at com.atlassian.confluence.search.v2.lucene.LuceneSearchManager.search(LuceneSearchManager.java:74) at com.atlassian.confluence.search.actions.SearchSiteAction.exactUsernameSearch(SearchSiteAction.java:286) at com.atlassian.confluence.search.actions.SearchSiteAction.getContributors(SearchSiteAction.java:237) at com.atlassian.confluence.search.actions.SearchSiteAction.validate(SearchSiteAction.java:158) at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:44) at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.security.interceptors.CaptchaInterceptor.intercept(CaptchaInterceptor.java:46) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.util.LoggingContextInterceptor.intercept(LoggingContextInterceptor.java:48) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.core.CancellingInterceptor.intercept(CancellingInterceptor.java:23) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:54) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.pages.actions.CommentAwareInterceptor.intercept(CommentAwareInterceptor.java:43) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.pages.actions.PageAwareInterceptor.intercept(PageAwareInterceptor.java:120) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.spaces.actions.SpaceAwareInterceptor.intercept(SpaceAwareInterceptor.java:67) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.core.actions.LastModifiedInterceptor.intercept(LastModifiedInterceptor.java:39) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.core.ConfluenceAutowireInterceptor.intercept(ConfluenceAutowireInterceptor.java:25) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.xwork.interceptors.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:97) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:115) at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:229) at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:199) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:153) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:54) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.confluence.jmx.JmxFilter.doFilter(JmxFilter.java:109) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.core.filters.ServletContextThreadLocalFilter.doFilter(ServletContextThreadLocalFilter.java:21) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.confluence.util.UserThreadLocalFilter.doFilter(UserThreadLocalFilter.java:44) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:192) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.seraph.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:120) at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:28) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:72) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170) at com.atlassian.spring.filter.FlushingSpringSessionInViewFilter.doFilterInternal(FlushingSpringSessionInViewFilter.java:29) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:142) at com.atlassian.core.filters.ProfilingAndErrorFilter.doFilter(ProfilingAndErrorFilter.java:27) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.confluence.core.datetime.RequestTimeThreadLocalFilter.doFilter(RequestTimeThreadLocalFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.confluence.util.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.java:25) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.gzipfilter.GzipFilter.doFilterInternal(GzipFilter.java:94) at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:64) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:33) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.IllegalArgumentException: org.apache.lucene.queryParser.ParseException: Cannot parse &#39;"&gt;&#39;: Lexical error at line 1, column 3. Encountered: &lt;EOF&gt; after : "&#92;"&gt;" at com.atlassian.confluence.search.v2.lucene.mapper.TextFieldQueryMapper.convertToLuceneQuery(TextFieldQueryMapper.java:46) at com.atlassian.confluence.search.v2.lucene.mapper.TextFieldQueryMapper.convertToLuceneQuery(TextFieldQueryMapper.java:15) at com.atlassian.confluence.search.v2.lucene.DelegatingLuceneSearchMapper.convertToLuceneQuery(DelegatingLuceneSearchMapper.java:30) at com.atlassian.confluence.search.v2.lucene.mapper.BooleanQueryMapper.addSubQueries(BooleanQueryMapper.java:43) at com.atlassian.confluence.search.v2.lucene.mapper.BooleanQueryMapper.convertToLuceneQuery(BooleanQueryMapper.java:29) at com.atlassian.confluence.search.v2.lucene.DelegatingLuceneSearchMapper.convertToLuceneQuery(DelegatingLuceneSearchMapper.java:30) at com.atlassian.confluence.search.v2.lucene.LuceneSearchManager.search(LuceneSearchManager.java:52) ... 113 more
Caused by: org.apache.lucene.queryParser.ParseException: Cannot parse &#39;"&gt;&#39;: Lexical error at line 1, column 3. Encountered: &lt;EOF&gt; after : "&#92;"&gt;" at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:153) at com.atlassian.confluence.search.v2.lucene.mapper.TextFieldQueryMapper.convertToLuceneQuery(TextFieldQueryMapper.java:42) ... 119 more

Referer URL

Unknown
Confluence Application Information
Build Information

buildNumber: 1418
upTime: 2 days, 2 hours, 12 minutes, 11 seconds
devMode: false
version: 2.9.1
home: /var/lib/confluence
Unique ID: 0x0000011D5EDA2F53458D112A3234C9F2472F5C45C3AF54AE9C867DF600E1355
Server information

Application Server: Apache Tomcat/5.5.26
Servlet Version: 2.4
Database Dialect: com.atlassian.hibernate.dialect.MySQLDialect
Database Driver Name: com.mysql.jdbc.Driver
Database Driver Version: 5.0
Database Name: MySQL
Database Version: 4.1.22
Database Transaction Isolation: Repeatable read Database Latency: 0
Memory Information

Total Memory: 1016 MB
Used Memory: 913 MB
Free Memory: 103 MB
System Information

userName: tomcat
favouriteColour: Sangria
time: 08:05:12
javaVm: Java HotSpot(TM) Client VM
operatingSystemArchitecture: i386
date: Friday, 24 Oct 2008
operatingSystem: Linux 2.6.9-78.0.1.ELsmp
jvmVersion: 1.0
userTimezone: US/Eastern
fileSystemEncoding: UTF-8
jvmImplementationVersion: 1.5.0_16-b02
appServer: Apache Tomcat
javaVendor: Sun Microsystems Inc.
javaVersion: 1.5.0_16
javaRuntime: Java(TM) 2 Runtime Environment, Standard Edition
jvmVendor: Sun Microsystems Inc.
Cluster Information

Not clustered.
Plugins

 * Add Content Menu Sections (confluence.menu.add, Version: 1.0) * Admin Sections (confluence.sections.admin, Version: 1.0) * Advanced Macros (confluence.macros.advanced, Version: 1.4.2) * Attachment Actions (confluence.sections.attachments, Version: 1.0) * Attachment Extractors (com.atlassian.confluence.plugins.attachmentExtractors, Version: 1.0-SNAPSHOT) * Basic Macros (confluence.macros.basic, Version: 1.4) * Browse Menu Items (confluence.sections.browse, Version: 1.0) * Chart Plugin (confluence.extra.chart, Version: 1.11) * Clickr Theme (com.atlassian.confluence.themes.clickr, Version: 2.2) * Code Macro (confluence.macros.code, Version: 1.5) * Comment Action Sections (confluence.comment.action, Version: 1.0) * Confluence Atlassian Plugin Repository (confluence.repository.client, Version: 2.0.15) * Confluence Attachments Plugin (confluence.extra.attachments, Version: 2.10) * Confluence Classic Theme (com.atlassian.confluence.themes.classic, Version: 2.0) * Confluence Contributors Plugin (com.atlassian.confluence.contributors, Version: 1.2) * Confluence Usage Stats (com.atlassian.confluence.ext.usage, Version: 0.8) * Content Action Menu Sections (confluence.content.action.menu, Version: 1.0) * Content Buttons (confluence.sections.page.temp, Version: 1.0) * Core Extractors (confluence.extractors.core, Version: 1.4) * Core Listeners (confluence.listeners.core, Version: 1.3) * Core Path Converters (confluence.converters.core, Version: 1.0) * Core Startup and Shutdown (confluence.lifecycle.core, Version: 1) * Dashboard Macros (confluence.macros.dashboard, Version: 1.4.2) * Default Theme (com.atlassian.confluence.themes.default, Version: 1.0) * Dynamic Task List 2 Plugin (confluence.extra.dynamictasklist2, Version: 3.0.6) * Edit Profile Sections (confluence.sections.profile.edit, Version: 1.0) * French language pack (confluence.languages.fr_FR, Version: 1.8) * German language pack (confluence.languages.de_DE, Version: 1.3) * Global Labels Sections (confluence.sections.labels, Version: 1.0) * Information Macros (confluence.extra.information, Version: 1.0) * Layout Macros (confluence.extra.layout, Version: 1.1) * Left Navigation Theme (com.atlassian.confluence.themes.leftnavigation, Version: 2.0) * Live Search Macros (confluence.extra.livesearch, Version: 2.8) * News Tabs (confluence.sections.news, Version: 1.0) * Page Operations (confluence.sections.page.operations, Version: 1.0) * Page Tabs (confluence.sections.page, Version: 1.0) * Page Tabs (confluence.search.mappers.lucene, Version: 1.0) * Page Tree (com.atlassian.confluence.plugins.pagetree, Version: 1.10) * Page View Links (confluence.sections.page.actions, Version: 1.0) * Profile Tabs (confluence.sections.profile, Version: 1.0) * Search Web Interface (confluence.sections.search.view, Version: 1.0) * Space Actions Sections (confluence.sections.space.actions, Version: 1.0) * Space Admin Sections (confluence.sections.space.admin, Version: 1.0) * Space Advanced Sections (confluence.sections.space.advanced, Version: 1.0) * Space Browse Sections (confluence.sections.space.browse, Version: 1.0) * Space Item Tabs (confluence.sections.space, Version: 1.0) * Space Labels Sections (confluence.sections.space.labels, Version: 1.0) * Space Pages Sections (confluence.sections.space.pages, Version: 1.0) * System Web Resources (confluence.web.resources, Version: 1.0) * Table of Contents Plugin (org.randombits.confluence.toc, Version: 2.4.8)

 * Tabular Metadata (confluence.extra.masterdetail, Version: 2.7) * TinyMCE Editor Plugin (com.atlassian.confluence.extra.tinymceplugin, Version: 3.0-rc2) * User Lister (confluence.extra.userlister, Version: 2.4) * User Menu Sections (confluence.user.menu, Version: 1.0) * View Profile Web Interface (confluence.sections.profile.view, Version: 1.0) * Wiki Renderer Components (confluence.renderer.components, Version: 1.0)

Request
Information

URL https://www.securecoding.cert.org/confluence/500page.jsp 
URI /confluence/500page.jsp 
Context Path /confluence
Servlet Path /500page.jsp
Query String queryString=%22%3E&amp;queryString=%22%3E&amp;where=conf_all&amp;type=&amp;lastModified=&amp;contributor=%22%3E&amp;contributorUsername=

Headers (Limited subset)

host www.securecoding.cert.org
user-agent Mozilla/1.0 (Windows; U; Windows NT 1.1; en-US; rv:2.9.0.3) Gecko/2002016217
keep-alive 300
connection keep-alive

Attributes

javax.servlet.forward.request_uri /confluence/dosearchsite.action
javax.servlet.forward.context_path /confluence
javax.servlet.forward.servlet_path /dosearchsite.action
javax.servlet.forward.path_info /500page.jsp
javax.servlet.forward.query_string queryString=%22%3E&amp;queryString=%22%3E&amp;where=conf_all&amp;type=&amp;lastModified=&amp;contributor=%22%3E&amp;contributorUsername=
javax.servlet.error.message
javax.servlet.error.exception java.lang.IllegalArgumentException: Invalid search query found in specified search.
os_securityfilter_already_filtered true
com.atlassian.johnson.filters.JohnsonFilter_already_filtered true
__sitemesh__using_stream false
javax.servlet.error.request_uri /confluence/dosearchsite.action
com.atlassian.gzipfilter.GzipFilter_already_filtered true
javax.servlet.error.status_code 500
__sitemesh__filterapplied true
javax.servlet.error.servlet_name action
webwork.valueStack com.opensymphony.xwork.util.OgnlValueStack@e2a5ac
Confluence-Request-Time 1224851735677
loginfilter.already.filtered true
atlassian.core.seraph.original.url /dosearchsite.action?queryString=%22%3E&amp;queryString=%22%3E&amp;where=conf_all&amp;type=&amp;lastModified=&amp;contributor=%22%3E&amp;contributorUsername=
javax.servlet.jsp.jspException java.lang.IllegalArgumentException: Invalid search query found in specified search.
sessioninview.FILTERED true

Parameters (Limited subset)

queryString "&gt; "&gt;
contributorUsername
type
where conf_all
lastModified
contributor "&gt;

Confluence User

anonymous</pre>
<p>^ Oops, besides this hideous blob of intelligence it also let us modify the SQL query. Finally something really interesing to discuss at those cocktail parties or is it?</p>
<p>[1] <a rel="nofollow" target="_blank" href="https://www.securecoding.cert.org/confluence/display/seccode/CERT+Secure+Coding+Standards">https://www.securecoding.cert.org/confluence/display/seccode/CERT+Secure+Coding+Standards</a><br />
source: OWASP News</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/secure-coding-and-cocktail-parties/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The RPC Worm Victim List.</title>
		<link>http://www.ecommy.com/web-security/the-rpc-worm-victim-list</link>
		<comments>http://www.ecommy.com/web-security/the-rpc-worm-victim-list#comments</comments>
		<pubDate>Sat, 25 Oct 2008 13:25:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/web-security/the-rpc-worm-victim-list</guid>
		<description><![CDATA[      
      ]]></description>
			<content:encoded><![CDATA[      
      ]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/the-rpc-worm-victim-list/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera Arioso Update.</title>
		<link>http://www.ecommy.com/web-security/opera-arioso-update</link>
		<comments>http://www.ecommy.com/web-security/opera-arioso-update#comments</comments>
		<pubDate>Sat, 25 Oct 2008 13:25:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/web-security/opera-arioso-update</guid>
		<description><![CDATA[      
      I&#39;ve made some updates on my Opera plugin to block and protect more attacks against Opera. Luckily there aren&#39;t that many attacks in comparison to other browsers, nonetheless I like to notice what happens on webpages I visit. The minor updates are based upon Gareth Heyes Unicode loop circumvention for Arioso&#39;s active heapspraying and buffer [...]]]></description>
			<content:encoded><![CDATA[      
      <p>I&#39;ve made some updates on my Opera plugin to block and protect more attacks against Opera. Luckily there aren&#39;t that many attacks in comparison to other browsers, nonetheless I like to notice what happens on webpages I visit. The minor updates are based upon Gareth Heyes Unicode loop circumvention for Arioso&#39;s active heapspraying and buffer overflow detection, setPreference and more strict opera: scheme blocking based upon Aviv Raff and Stefano Di Paola, Roberto Suggi Liverani&#39;s new proof of concepts. Arioso already did protect against the proof of concepts on hyperlinks, but lacked additional heuristics on sources. Please notice that Arioso does not block Javascript, instead it analyzes a document, it&#39;s Javascript and based on attack heuristics determines whether to block the scripts from executing before the page has a chance to load the scripts. Arioso also detects attacks against Internet Explorer and Firefox, while this does not affect Opera, it&#39;s always nice to know that the page in question tries to execute an attack against you. One key feature in Arioso is the possibility in using Opera with a very strict same origin policy, this is and was enabled by default, and denies any cross context sourcing from Javascript files. This means that any script content that is loaded from another context than you are in, will be blocked by default.</p>
<p>You can download the new version of Arioso here: <a rel="nofollow" target="_blank" href="http://www.0x000000.com/arioso.js">http://www.0&#215;000000.com/arioso.js</a></p>
<p>The Arioso source can be loaded into Opera. To enable user JavaScript, use Tools &gt; Preferences &gt; Advanced &gt; Content &gt; JavaScript options, and select the directory where you will put your User JavaScript files. Opera will load all files in the specified directory whose names end with .js and will use them as User JavaScript files. Use Opera with Arioso, and you&#39;ll be more secure than any other browser available right now.</p>
<pre>
(function(opera){

/*

 ~~~ Opera Arioso! ~~~  Active browser vulnerability detection &amp; protection by rvdh, 0x000000.com

 $revisions$ update: 20/7/2008: 7:15 PM, keylog pattern adjusted. update: 22/10/2008: 23:00 PM, unicode loop detection.  update: 23/10/2008: 4:19 PM, blocks opera:* on sources, blocks intranet access. credits: Rvdh, Gareth Heyes, Roberto Suggi Liverani, Aviv Raff, Stefano Di Paola

*/

// Arioso magic variables
window.opera.defineMagicVariable(&#39;arioso_links&#39;, function() {}, null);
window.opera.defineMagicVariable(&#39;arioso_alert&#39;, function() {}, null);

// Set strict same origin policy:
var arioso_strict_sop = true;

// Arioso variables
var arioso_links = document.links;
var arioso_alert = "";
var crlf = ". &#92;r&#92;n";

// Arioso messages
var m1 = &#39;Unsafe URI hyperlink schemes&#39;;
var m2 = &#39;Denial of service vector&#39;;
var m3 = &#39;Heapspraying or denial of service vector&#39;;
var m4 = &#39;VBInjection&#39;;
var m5 = &#39;Cookie stealing&#39;;
var m6 = &#39;Same origin policy violation&#39;;
var m7 = &#39;Keylogging&#39;;
var m8 = &#39;Script access&#39;;
var m9 = &#39;ActiveX access&#39;;
var m10 = &#39;Java access&#39;;
var m11 = &#39;Http response splitting&#39;;
var m12 = &#39;Preference hijacking&#39;;

// Arioso patterns
var p1 = /^(chrome|file|opera|res|data|telnet|about|resource|view-source|acrobat|localhost|loopback|127&#92;.|192&#92;.)&#92;s*(:|&#92;.)/gim;
var p2 = /for&#92;s*&#92;(&#92;s*.*([a-z]|[0-9])&#92;s*&#92;=&#92;s*.*([a-z]|[0-9])&#92;s*;&#92;s*.*([a-z]|[0-9])&#92;s*(&lt;|&gt;|&lt;=|&gt;=|&lt;==|&gt;==)&#92;s*[0-9]{3,}&#92;s*;&#92;s*/gim;
var p3 = /(while|for|space|block|memory).*unescape&#92;(("|&#39;)(%[0-9]|&#92;&#92;x|&#92;&#92;u)([a-z]|[0-9])("|&#39;)&#92;)/gim;
var p4 = /String&#92;(&#92;s*.*([a-z]|[0-9]){6,},&#92;s*"[a-z]"&#92;)/gim;
var p5 = /(http|https):&#92;/&#92;/.*&#92;?.*=.*(&#92;+|concat|join).*document&#92;.(cookie|domain)/gim;
var p6 = /(src|href|location|data|classid|codebase|open)&#92;s*(=|&#92;().*(chrome|file|opera|res|data|telnet|about|resource|view-source|acrobat|localhost|loopback|127&#92;.|192&#92;.)&#92;s*(:|&#92;.)/gim;
var p7 = /(&#92;.keyCode|&#92;.keypress|(e|event)&#92;.charCode)/gim;
var p8 = /(bad_arioso_schemes|arioso_links|arioso_schemes|arioso_sanitize_xss)/gim;
var p9 = /(ActiveXObject&#92;(("|&#39;).*Shell("|&#39;)&#92;)|HKEY&#92;_)/gim;
var p10 = /(java&#92;.(sun|awt)|packages&#92;.(.*)(plugin|javascript))/gim;
var p11 = /open&#92;(("|&#39;)&#92;s*(GET|TRACE|POST)&#92;s*("|&#39;).*(&#92;&#92;r|&#92;&#92;r&#92;&#92;n|&#92;&#92;n|(%[0-9]|&#92;&#92;x|&#92;&#92;u)([a-z]|[0-9])).*&#92;)/gim;
var p12 = /.*opera&#92;.setPreference.*/gim;

// strict same origin policy detection
if(arioso_strict_sop == true) { window.opera.addEventListener(&#39;BeforeExternalScript&#39;, function(e) { if (!e.element.getAttribute(&#39;src&#39;).match(document.location)) { e.preventDefault(); } }, false);
}

// Arioso link enumerator detecting bad uri schemes
window.addEventListener(&#39;DOMContentLoaded&#39;, function(e) { for (i = 0; i &lt; arioso_links.length; i++) { entity = arioso_links[i].toString(); if (entity.match(p1)) { arioso_alert += m1; } }
}, false);

window.opera.addEventListener(&#39;BeforeScript&#39;, function(e) {

 if (e.element.text.match(p2)) { arioso_alert += m2 + crlf; e.preventDefault(); }  if (e.element.text.match(p3)) { arioso_alert += m3 + crlf; e.preventDefault(); }  if (e.element.text.match(p4)) { arioso_alert += m4 + crlf; e.preventDefault(); }  if (e.element.text.match(p5)) { arioso_alert += m5 + crlf; e.preventDefault(); } if (e.element.text.match(p6)) { arioso_alert += m6 + crlf; e.preventDefault(); } if (e.element.text.match(p7)) { arioso_alert += m7 + crlf; e.preventDefault(); } if (e.element.text.match(p8)) { arioso_alert += m8 + crlf; e.preventDefault(); } if (e.element.text.match(p9)) {  arioso_alert += m9 + crlf; e.preventDefault();  }	 if (e.element.text.match(p10)) { arioso_alert += m10 + crlf; e.preventDefault(); }	 if (e.element.text.match(p11)) { arioso_alert += m11 + crlf; e.preventDefault(); }	 if (e.element.text.match(p12)) { arioso_alert += m12 + crlf; e.preventDefault(); }	

}, false);

document.addEventListener(&#39;load&#39;, function(e) {

 if (arioso_alert != &#39;&#39; ) { var ary = document.createElement(&#39;div&#39;); ary.style.position = &#39;fixed&#39;; ary.style.top = &#39;0px&#39;; ary.style.left = &#39;0px&#39;; ary.style.width = &#39;100%&#39;; ary.style.opacity = &#39;.90&#39;; ary.style.filter = &#39;alpha(opacity=90)&#39;; ary.style.border = &#39;1px dotted #f30&#39;; ary.style.padding = &#39;3px&#39;; ary.style.font = &#39;8pt sans-serif&#39;; ary.style.backgroundColor = &#39;#f00&#39;; ary.style.color = &#39;#fff&#39;; ary.appendChild(document.createTextNode(&#39;ARIOSO BLOCKED: &#39; + arioso_alert)) document.body.appendChild(ary); } 

}, false);

})(window.opera);</pre>
<p>source: OWASP News</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/opera-arioso-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disable RPC.</title>
		<link>http://www.ecommy.com/web-security/disable-rpc</link>
		<comments>http://www.ecommy.com/web-security/disable-rpc#comments</comments>
		<pubDate>Sat, 25 Oct 2008 13:25:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Security]]></category>

		<guid isPermaLink="false">http://www.ecommy.com/web-security/disable-rpc</guid>
		<description><![CDATA[      
      There is some fuss about RPC on Windows platforms.[1] As usual, I recommend to disable RPC temporarily from starting up when Windows boots. RPC is nasty and yet again a severe flaw has been found that attackers can abuse to take over a remote PC, and it doesn&#39;t require user interaction. An attacker can just [...]]]></description>
			<content:encoded><![CDATA[      
      <p>There is some fuss about RPC on Windows platforms.[1] As usual, I recommend to disable RPC temporarily from starting up when Windows boots. RPC is nasty and yet again a severe flaw has been found that attackers can abuse to take over a remote PC, and it doesn&#39;t require user interaction. An attacker can just send a RPC request remotely and take over your PC, including but not limited to use it to spread worms. It&#39;s highly recommended that you temporarily turn RPC off if you didn&#39;t already do that. I wrote a small script that can do it for you in Internet Explorer, if you trust me of course! If you haven&#39;t got Internet Explorer you can do it manually as well. </p>
<p>Save the script as HTML and run it from your desktop or intranet.</p>
<pre>&lt;script language="JavaScript"&gt; 

HKEY="HKEY_LOCAL_MACHINE&#92;&#92;SYSTEM&#92;&#92;ControlSet001&#92;&#92;Services&#92;&#92;RpcSs&#92;&#92;Start"; 
function lockdownRPC() {  try {  var keylock = new ActiveXObject("WScript.Shell");  keylock.RegWrite(HKEY,0x00000004);  alert(&#39;RPC start value set to: 0x00000004, Run &gt; services.msc &gt; RPC and change the startup type to manually or disabled.&#39;); keylock.Run("CMD /c services.msc"); } catch(e){ alert(&#39;Key could not be altered, do it manually please.&#39;); } 
} 
&lt;/script&gt; 

&lt;input type="button" value="Turn off RPC" onclick="lockdownRPC()"&gt;</pre>
<p>Be cautious when working with RPC, the above script disables RPC which is something Windows normally does not allow. It is possible that some programs stop working after booting, so it is advised to set RPC to manually in the services.msc after running the script that unlocks the registry. If you want to do a rollback, just run the script again and enable RPC again.</p>
<p>[1] <a rel="nofollow" target="_blank" href="http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx">http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx</a><br />
source: OWASP News</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ecommy.com/web-security/disable-rpc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.ecommy.com/c/web-security/feed ) in 0.74117 seconds, on Feb 6th, 2012 at 10:32 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 6th, 2012 at 11:32 am UTC -->
