One of my websites got hit.. I  always use 
cfqueryparam - at least for the last few years, 
but some old code (this website started with 
version 1 of CF) was still hanging around  that 
was unprotected. I used that scanning tool and it 
found about 20 unprotected querries out of about 20,000...

anyway - I set up a filter in the application.cfm 
to watch for a few of these bad keywords..and 
temporarily ban those IPs.. I am getting hit a 
few times a minute now.. on all of the websites I 
run..  however, one of the owners got banned when 
he included  the word "Declare" in a product description:)


  for this attack, I am thinking wouldn't it be 
wise to remove permission to use the sysobjects 
and syscolumns from the user I access the MS SQL 
server with from CF?  (In other words, I am 
assuming that cf does not need access to these tables - does it?)





>Mark,
>
>Thanks for the info.  I tried this and it 
>located the code.  I removed the comment and 
>Executed however, the code still remains.
>Any help you can offer would be great!
>
>Thanks!
>
>
> >For those of you who have been hit by this attack and who need to try
> >something short of restoring your DB, this script will generate a series of
> >update statements in reverse of the hack that's been going around:
> >
> >-----------------------------------------------------------
> >DECLARE @T varchar(255), @C varchar(255)
> >DECLARE @sql varchar(4000)
> >DECLARE @script varchar(255)
> >/*fill in the value of the malicious script. */
> >select @script = '<script src="*scriptsrc"></script><!---'
> >
> >DECLARE Table_Cursor CURSOR FOR
> >  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 OR b.xtype = 231 OR b.xtype = 167)
> >
> >    OPEN Table_Cursor
> >      FETCH NEXT FROM Table_Cursor INTO @T, @C
> >       WHILE (@@FETCH_STATUS = 0)
> >         BEGIN
> >           SELECT @sql = 'update [' + @T +'] set ['+ @C +'] = Replace(['  +
> >@C + '],''' + @script + ''','''')'
> >           PRINT @sql
> >
> >           /*uncomment this after checking the output using print */
> >           --EXEC(@sql)
> >
> >               FETCH NEXT FROM Table_Cursor INTO @T, @C
> >       END
> >CLOSE Table_Cursor
> >DEALLOCATE Table_Cursor
> >
> >-------------------------------------------------------
> >
> >1) Replace the value of @script (the select at the top) with the value of
> >the string that's been inserted into your DB
> >2) Run the script AS IS - you should see a list of  "update" statements that
> >look like this:
> >
> >update [**tablename] set [**columnName] = Replace([**ColumnName],'<script
> >src="*scriptsrc"></script><!---','')
> >
> >Where **tablename and **columname represent actual tables/columns from your
> >DB.
> >
> >You can then run the updates individually to strip out the malicious code...
> >I also converted the update to a select to compare the values and see what
> >the result would be on update.
> >
> >3) If you are brave you can comment out the "EXEC(@sql)" line and rerun the
> >script. Doing so will hit every table and every char column with these
> >updates so be sure you know what you are doing.
> >
> >
> >-Mark
>
>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;203748912;27390454;j

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:309548
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to