<?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"
	>

<channel>
	<title>Suspekt... &#187; Projects</title>
	<atom:link href="http://www.suspekt.org/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.suspekt.org</link>
	<description>A Blog About Code, Information Security, PHP And More</description>
	<pubDate>Sat, 25 Dec 2010 07:36:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Improving the ASLR of Mac OS X Snow Leopard</title>
		<link>http://www.suspekt.org/2010/12/25/improving-the-aslr-of-mac-os-x-snow-leopard/</link>
		<comments>http://www.suspekt.org/2010/12/25/improving-the-aslr-of-mac-os-x-snow-leopard/#comments</comments>
		<pubDate>Sat, 25 Dec 2010 07:36:33 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[aslr]]></category>

		<category><![CDATA[dyld]]></category>

		<category><![CDATA[mac os x]]></category>

		<category><![CDATA[rebasing]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=366</guid>
		<description><![CDATA[Last week I presented my research about &#8220;Adding ASLR to jailbroken iPhones&#8221; at the Power of Community 2010 (POC2010) security conference in Seoul. During my talk I explained how one can use a modified &#8216;rebase&#8217; utility to rebase the dynamic linker dyld on the iPhone. Rebasing dyld is important because it contains enough code gadgets [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I presented my research about &#8220;<a href="http://antid0te.com/POC2010-Adding-ASLR-To-Jailbroken-iPhones.pdf">Adding ASLR to jailbroken iPhones</a>&#8221; at the <a href="http://www.powerofcommunity.net">Power of Community 2010 (POC2010)</a> security conference in Seoul. During my talk I explained how one can use a modified &#8216;rebase&#8217; utility to rebase the dynamic linker dyld on the iPhone. Rebasing dyld is important because it contains enough code gadgets that can be used to kickstart arbitrary shellcode on jailbroken iPhones. A tool called <a href="http://www.antid0te.com">Antid0te</a> will be released until the end of this year that allows normal users to add ASLR to their iPhones. The release of this tool was originally planned for 24th December 2010 but it had to be postponed because I got really ill and also my glasses broke.</p>
<p>Anyway a few days ago I demonstrated how my &#8220;rebase dyld&#8221; research that was originally done for the iPhone applies directly to the dynamic linker used by Mac OS X Snow Leopard. I released a <a href="http://antid0te.com/antid0te-for-snow-leopard-rebasing-dyld.html">short article </a>describing how one can rebase his dyld binary with a patched &#8216;rebase&#8217; utility which I also released. This can be used to rebase your own dyld binary to a different position. Rebasing dyld to an address other than the normal one, improves the security of your Mac because all the public articles/techniques about state of the art Mac OS X exploitation assume/require the dyld binary to be loaded at a fixed address. All attacks based on this will fail once you have rebased your dynamic linker binary.</p>
<p>So enjoy this little christmas present until I am fit enough to release <a href="http://antid0te.com/">antid0te.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2010/12/25/improving-the-aslr-of-mac-os-x-snow-leopard/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Speaking at POC 2010 - ASLR for jailbroken iPhones</title>
		<link>http://www.suspekt.org/2010/12/01/speaking-at-poc-2010-aslr-for-jailbroken-iphones/</link>
		<comments>http://www.suspekt.org/2010/12/01/speaking-at-poc-2010-aslr-for-jailbroken-iphones/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 10:57:16 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[korea]]></category>

		<category><![CDATA[aslr]]></category>

		<category><![CDATA[exploit]]></category>

		<category><![CDATA[exploit mitigation]]></category>

		<category><![CDATA[jailbreak]]></category>

		<category><![CDATA[poc]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=361</guid>
		<description><![CDATA[
December has arrived and it is time to announce my talk for the Power of Community security conference in Seoul. This year I will not only return there for the 3rd time as speaker, but this time I will talk about something not related to PHP or web security at all. My company SektionEins recently [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.powerofcommunity.net/"><img class="alignnone size-medium wp-image-76" title="poc_logo" src="http://www.suspekt.org/wp-content/uploads/2008/08/poc_logo.jpg" border="1" alt="" width="100" height="100" /></a><br />
December has arrived and it is time to announce my talk for the <a href="http://www.powerofcommunity.net">Power of Community</a> security conference in Seoul. This year I will not only return there for the 3rd time as speaker, but this time I will talk about something not related to PHP or web security at all. My company <a href="http://www.sektioneins.com">SektionEins</a> recently started to offer mobile security audits and I am now playing around with iPhone security all the time which resulted in the talk that I will present at POC this year.</p>
<blockquote><p><strong>Session: Adding Address Space Layout Randomization (ASLR) to jailbroken iPhones</strong><br />
This year has brought bad news for the security of the iPhone. First it was demonstrated during the PWN2OWN contest that ROP payloads can steal information like the SMS database from factory iPhones and later this year jailbreakme.com combined multiple exploits for vulnerabilities in MobileSafari, the iOS kernel and the userland to jailbreak the device from remote. And for jailbroken devices the situation is even worse because the jailbreak weakens the otherwise strong security features of the iPhone in a way that remote exploits are far easier to accomplish.</p>
<p>However it is time to remember that the whole purpose of a jailbreak is to free the device from Apple and to allow users to do whatever they want with their device. The fact that current jailbreaks destroy the security is just because jailbreakers did not bother to find a better solution. This changes now.</p>
<p>In this session the differences in exploiting jailbroken and factory iPhones will be highlighted and it will be explained step by step how a new tool was developed that adds ASLR (address space layout randomization) to jailbroken iPhones. With ASLR an exploit mitigation is added that is not available in factory iPhones and makes exploitation more difficult. And this is only the first step, more mitigations and a full reactivation of the codesigning protection are planed for the next months.</p></blockquote>
<p>See you in Seoul between 13th and 16th December.</p>
<p>서울에서 12월 13일에서 16일에 만나요!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2010/12/01/speaking-at-poc-2010-aslr-for-jailbroken-iphones/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ext/usim - The PHP Upgrade Simulator</title>
		<link>http://www.suspekt.org/2008/12/09/extusim-the-php-upgrade-simulator/</link>
		<comments>http://www.suspekt.org/2008/12/09/extusim-the-php-upgrade-simulator/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 08:06:18 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=217</guid>
		<description><![CDATA[For half a year now I was working on a secret project called &#8220;PHP Upgrade Simulator&#8221; or short ext/usim which is a PHP extension that allows people to evaluate how robust their PHP code base is when it comes to upgrading to future PHP versions. I am happy to announce that after several months of [...]]]></description>
			<content:encoded><![CDATA[<p>For half a year now I was working on a secret project called &#8220;PHP Upgrade Simulator&#8221; or short ext/usim which is a PHP extension that allows people to evaluate how robust their PHP code base is when it comes to upgrading to future PHP versions. I am happy to announce that after several months of work the project is now ready for a version 1.0.0 release.</p>
<p>The idea of the project is very simple. During a PHP upgrade there is always the possibility that some bug was introduced, some behaviour changed, some crash was introduced, some functions got deprecated. This possibility can be measured from past statistical values and interpolated into the future to simulate an update.</p>
<p>At this point I want to thank all the members of the PHP community that helped me reviewing the bug reports from the last 5 years to gather information about the likeliness of each incident. It was hard work, but it was worth it. In the end we developed a formula that determines how likely one of the incidents is given a certain delta in the version number.</p>
<p>To use the extension you simply have to compile, load and configure it like every other PHP extension. The configuration directive is called <em>usim.upgradeversion</em>. You just set it to whatever version you want to simulate.</p>
<blockquote><p>usim.upgradeversion = 5.4.17</p></blockquote>
<p>From that point on your PHP installation will behave like an interpolated PHP 5.4.17. The following features are supported:</p>
<ul>
<li>Important functions are suddenly deprecated</li>
<li>Deprecated functions are removed</li>
<li>Not deprecated functions are removed (e.g. move to PECL)</li>
<li>Introduction of random crashes (on shutdown, during functions, on function call)</li>
<li>register_globals and magic_quotes_gpc randomly turned on and off</li>
<li>safe_mode removed</li>
<li>Leaking of .ini directives to other VHOST (e.g. open_basedir)</li>
<li>Introduction of new keywords or classes which collide with popular names</li>
<li>Random change of the namespace separator character during minor upgrades</li>
<li>Change of default memory_limit</li>
</ul>
<p>The PHP Upgrade simulator is <a href="http://www.suspekt.org/wp-exit.php?id=usim">available here for download</a>. Have fun with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/12/09/extusim-the-php-upgrade-simulator/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Suhosin - Picture - Logo?</title>
		<link>http://www.suspekt.org/2008/09/04/suhosin-picture-logo/</link>
		<comments>http://www.suspekt.org/2008/09/04/suhosin-picture-logo/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 00:38:33 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[fotos]]></category>

		<category><![CDATA[logo]]></category>

		<category><![CDATA[pictures]]></category>

		<category><![CDATA[suhosin]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=142</guid>
		<description><![CDATA[The first questions regarding Suhosin are where the name comes from and what it actually means. I usually explain that Suhosin is similar to a guardian angel. Some ghost or god protecting a village from dark ghosts.
Yesterday I was able to take this picture of two of the guardian ghosts that are called Suhosin over [...]]]></description>
			<content:encoded><![CDATA[<p>The first questions regarding Suhosin are where the name comes from and what it actually means. I usually explain that Suhosin is similar to a guardian angel. Some ghost or god protecting a village from dark ghosts.</p>
<p>Yesterday I was able to take this picture of two of the guardian ghosts that are called Suhosin over here in Korea. This might help designing a long overdue logo for Suhosin.</p>
<p><center><a href="http://www.suspekt.org/wp-content/uploads/2008/09/img_0170.jpg"><img class="aligncenter size-medium wp-image-143" title="Suhosin" src="http://www.suspekt.org/wp-content/uploads/2008/09/img_0170.jpg" border="1" alt="" width="225" height="300" /></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/09/04/suhosin-picture-logo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Suhosin 0.9.26 - Improved Randomness</title>
		<link>http://www.suspekt.org/2008/08/22/suhosin-0926-improved-randomness/</link>
		<comments>http://www.suspekt.org/2008/08/22/suhosin-0926-improved-randomness/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 15:27:14 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=134</guid>
		<description><![CDATA[I just released Suhosin 0.9.26 which among bugfixes contains new features. The full changelog is

Fixed problem with suhosin.perdir
Thanks to Hosteurope for tracking this down
Fixed problems with ext/uploadprogress
Reported by: Christian Stocker
Added suhosin.srand.ignore and suhosin.mt_srand.ignore (default: on)
Modified rand()/srand() to use the Mersenne Twister algorithm with separate state
Added better internal seeding of rand() and mt_rand()

The last three items [...]]]></description>
			<content:encoded><![CDATA[<p>I just released Suhosin 0.9.26 which among bugfixes contains new features. The full changelog is</p>
<ul>
<li>Fixed problem with suhosin.perdir<br />
Thanks to Hosteurope for tracking this down</li>
<li>Fixed problems with ext/uploadprogress<br />
Reported by: Christian Stocker</li>
<li>Added suhosin.srand.ignore and suhosin.mt_srand.ignore (default: on)</li>
<li>Modified rand()/srand() to use the Mersenne Twister algorithm with separate state</li>
<li>Added better internal seeding of rand() and mt_rand()</li>
</ul>
<p>The last three items in the changelog mean that the randomness of PHP&#8217;s rand() and mt_rand() functions have been greatly improved over vanilla PHP. This means when the Suhosin extension is installed on a server all the attacks described in my previous blogpost about <a href="http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/">PHP&#8217;s random number generators</a> are no longer possible. This adds another generic protection to kill a whole class of bugs at once.</p>
<p>As usual you can grab your copy at</p>
<p><a href="http://www.suhosin.org">http://www.suhosin.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/08/22/suhosin-0926-improved-randomness/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL-Proxy learning to block SQL-Injection</title>
		<link>http://www.suspekt.org/2008/08/15/mysql-proxy-learning-to-block-sql-injection/</link>
		<comments>http://www.suspekt.org/2008/08/15/mysql-proxy-learning-to-block-sql-injection/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 09:32:41 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=94</guid>
		<description><![CDATA[I previously reported about my joy with MySQL-Proxy and a simple SQL-Injection detection based on a simple heuristic.
Today I present the more interesting approach that I promised to publish after my webinar yesterday. This approach is based on the idea that SQL queries issued by an application always have a certain structure. This structure can [...]]]></description>
			<content:encoded><![CDATA[<p>I previously reported about <a href="http://www.suspekt.org/2008/08/05/mysql-proxy-heuristic-sql-injection-detection/">my joy with MySQL-Proxy</a> and a simple SQL-Injection detection based on a simple heuristic.</p>
<p>Today I present the more interesting approach that I promised to publish after my webinar yesterday. This approach is based on the idea that SQL queries issued by an application always have a certain structure. This structure can be learned and remembered by <a href="http://forge.mysql.com/wiki/MySQL_Proxy">MySQL-Proxy</a>. Any SQL query that has a different structure can then be considered an attack.</p>
<h3>Training Mode</h3>
<p>The first Lua script <a href="http://www.suspekt.org/downloads/learn_sql_queries.lua.gz">learn_sql_queries.lua</a> uses MySQL-Proxy&#8217;s read_query hook to catch COM_INIT_DB and COM_QUERY packets. COM_INIT_DB packets are issued when the database is changed and COM_QUERY packets contain normal queries.</p>
<p>When a change of database is detected a CREATE TABLE is injected into the communication to create a table called &#8216;allowed_queries&#8217; in the newly selected database. This table consist of only on column called &#8216;query&#8217;. Within this column normalized queries are collected.</p>
<p>When a normal query is received it is first tokenized by MySQL-Proxy&#8217;s tokenizer. The tokens are then used to recreate a normalized version of the query where all data values are replaced by the &#8216;?&#8217; placeholder. Additionally IN ( ?, ?, ?, &#8230;) statements are compressed to IN ( ? ) to allow arbitrary length IN value lists without having to learn all possibilities. The normalized query is then learned by inserting it into the table.</p>
<p>When all queries have been learned (maybe during development) the blocking mode can be started.</p>
<h3>Blocking Mode</h3>
<p>The second Lua script <a href="http://www.suspekt.org/downloads/block_unknown_queries.lua.gz">block_unknown_queries.lua</a> also uses MySQL-Proxy&#8217;s read_query hook to catch COM_INIT_DB and COM_QUERY packets.</p>
<p>When a change of database is detected a SELECT statement is injected into the communication that loads the table &#8216;allowed_queries&#8217; into a Lua-Table. The queries become the indices so that they can be found fast.</p>
<p>When a normal query is received it is first tokenized and normalized. The normalized Query is then searched in the Lua-Table which is just a key lookup. If the query is found in the table it is one of the known query structures that are allowed. The query is then executed as normally.</p>
<p>If the query is not found in the table it is either a query that was not learned by mistake or it is an SQL-Injection attack. The query is not executed and a database error &#8220;Possible SQL Injection&#8221; is returned.</p>
<p>Both proof of concept examples are released as GPL. Therefore feel free to modify them for your needs. You might prefer to just log SQL-Injection attempts instead of blocking them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/08/15/mysql-proxy-learning-to-block-sql-injection/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP 4 - Requiescat In Pace</title>
		<link>http://www.suspekt.org/2008/08/08/php-4-requiescat-in-pace/</link>
		<comments>http://www.suspekt.org/2008/08/08/php-4-requiescat-in-pace/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 08:50:44 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[dead]]></category>

		<category><![CDATA[rip]]></category>

		<category><![CDATA[suhosin]]></category>

		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=92</guid>
		<description><![CDATA[Since last night PHP 4 is finally dead&#8230;
Is it?
Well not really, because there are still millions of servers running PHP 4 that haven&#8217;t upgraded to the faster, more stable and more secure PHP 5 and most of them will continue to use it. So PHP 4 will still be around a while.
However last night PHP [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Since last night PHP 4 is finally dead&#8230;</strong></p>
<p><em>Is it?</em></p>
<p>Well not really, because there are still millions of servers running PHP 4 that haven&#8217;t upgraded to the faster, more stable and more secure PHP 5 and most of them will continue to use it. So PHP 4 will still be around a while.</p>
<p>However last night <a href="http://www.php.net/archive/2008.php#id2008-08-07-1">PHP 4.4.9</a> was released which is the final security update by the PHP development team. This means from now on not only normal support (which was dropped at the end of 2007) but also security support for PHP 4 has ended. It is therefore recommended to finally upgrade.</p>
<p>Because I know that upgrading is sometimes not that easy <a href="http://www.suhosin.org">Suhosin</a> will continue to support PHP 4 for a while. This means the current Suhosin-Patch 0.9.6 will be ported to PHP 4.4.9 and also the next release of Suhosin-Patch will still support recent PHP 4 versions. However at the end of 2008 I will also discontinue Suhosin-Patch for PHP 4 and new features to the Suhosin-Extension will only be implemented for PHP 5.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/08/08/php-4-requiescat-in-pace/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Suhosin 0.9.25</title>
		<link>http://www.suspekt.org/2008/08/06/suhosin-0925/</link>
		<comments>http://www.suspekt.org/2008/08/06/suhosin-0925/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 12:00:22 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=88</guid>
		<description><![CDATA[I just released a long overdue update to the Suhosin extension. There are only a few changes in it. The full changelog is

Fixed PHP 4 compilation problem introduced in 0.9.24
Fixed PHP 5.3 compilation problem
Changed PHP default POST handler to PHP&#8217;s current handler

As usual you can grab your copy at
http://www.suhosin.org/
]]></description>
			<content:encoded><![CDATA[<p>I just released a long overdue update to the <a href="http://www.suhosin.org">Suhosin</a> extension. There are only a few changes in it. The full changelog is</p>
<ul>
<li>Fixed PHP 4 compilation problem introduced in 0.9.24</li>
<li>Fixed PHP 5.3 compilation problem</li>
<li>Changed PHP default POST handler to PHP&#8217;s current handler</li>
</ul>
<p>As usual you can grab your copy at</p>
<p><a href="http://www.suhosin.org">http://www.suhosin.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/08/06/suhosin-0925/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mysql-Proxy Heuristic SQL Injection Detection</title>
		<link>http://www.suspekt.org/2008/08/05/mysql-proxy-heuristic-sql-injection-detection/</link>
		<comments>http://www.suspekt.org/2008/08/05/mysql-proxy-heuristic-sql-injection-detection/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 14:48:04 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[sql injection]]></category>

		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=83</guid>
		<description><![CDATA[“MySQL Proxy is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication. Its flexibility allows for unlimited uses; common ones include: load balancing; failover; query analysis; query filtering and modification; and many more.”
The flexibility of MySQL Proxy is based on the fact that every aspect [...]]]></description>
			<content:encoded><![CDATA[<p>“<a href="http://forge.mysql.com/wiki/MySQL_Proxy">MySQL Proxy</a> is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication. Its flexibility allows for unlimited uses; common ones include: load balancing; failover; query analysis; query filtering and modification; and many more.”</p>
<p>The flexibility of MySQL Proxy is based on the fact that every aspect is scriptable with <a href="http://www.lua.org">Lua</a>. Because I am new to MySQL Proxy and the <a href="http://www.lua.org">Lua</a> language I tried to implement a very simple script that waits for incoming SQL queries, tokenizes them and tries to detect SQL Injection heuristically by searching for certain disallowed SQL functions, databases, tables, statements or comments. When an SQL query is believed to contain an SQL injection is it not executed and a <em>&#8220;Possible SQL injection&#8221;</em> error is returned.</p>
<p>You can grab the detect_sql_injection.lua script at</p>
<p><a href="http://www.suspekt.org/downloads/detect_sql_injection.lua.gz">http://www.suspekt.org/downloads/detect_sql_injection.lua.gz</a></p>
<p>If you are interested in this and german speaking you might also be interested in next week&#8217;s MySQL webinar <a href="http://www.mysql.de/news-and-events/web-seminars/display-171.html">&#8220;Bau sicherer LAMP Anwendungen&#8221;</a> where I will not only discuss this little Lua script but also another one that implements SQL injection detection by query structure learning.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/08/05/mysql-proxy-heuristic-sql-injection-detection/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Switch Table Extension</title>
		<link>http://www.suspekt.org/2008/07/31/switch-table-extension/</link>
		<comments>http://www.suspekt.org/2008/07/31/switch-table-extension/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 19:32:13 +0000</pubDate>
		<dc:creator>Stefan Esser</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.suspekt.org/?p=56</guid>
		<description><![CDATA[A quite long time ago I stopped blogging in my previous blog at php-security.org because I wanted to move to a new domain to be able to finally blog about other things than PHP (or web application) security. Now after months of silence I start a new blog over here at suspekt.org that will no [...]]]></description>
			<content:encoded><![CDATA[<p>A quite long time ago I stopped blogging in my previous blog at <a href="http://blog.php-security.org">php-security.org</a> because I wanted to move to a new domain to be able to finally blog about other things than PHP (or web application) security. Now after months of silence I start a new blog over here at <a href="http://www.suspekt.org">suspekt.org</a> that will no longer concentrate on PHP security but also cover other topics that interest me.</p>
<p>Today I start with announcing the <a href="http://www.suspekt.org/switchtable/">Switch Table Extension</a> that I released yesterday with a short announcement on the PHP Internals mailinglist. The purpose of this experimental extension is to speed up the execution of repeated <em>switch()</em> statements. To understand how this achieved and why this is necessary read the documentation <a href="http://www.suspekt.org/switchtable/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.suspekt.org/2008/07/31/switch-table-extension/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
