当前位置:  数据库>sqlserver

数据库中的内容字段被挂马的替换方法 SQL注入

    来源: 互联网  发布时间:2014-09-05

    本文导语:  清除了sqlsever中的一些挂马字段,现在总结sqlsever批量替换数据库挂马字段一文,希望可以帮助有需要的人。 【处理方法】 1、先备份数据,防止删除挂马字段的时候,丢失数据; 2、对挂马的表中的字段text小于8000执行以下语...

清除了sqlsever中的一些挂马字段,现在总结sqlsever批量替换数据库挂马字段一文,希望可以帮助有需要的人。
【处理方法】
1、先备份数据,防止删除挂马字段的时候,丢失数据;
2、对挂马的表中的字段text小于8000执行以下语句(网上的很多软件与方法都是针对text小于8000的,这个解决方法你可以参考)
代码如下: 如表news 字段context 挂马字段是

代码如下:

update news set context=replace(context,'','')


执行后挂马字段被清除。
3、但是有部分字段,比如内容字段等大于8000字符的varchar字段则需要执行
代码如下:
代码如下:

update news set context=replace(cast(context as varchar(8000)),' ', '')


4、有时候信息量较大的时候,会给数据库带来假死现象,我们可以加区间分批执行,每次执行10000条
代码如下:

update news
set context=replace(cast(context as varchar(8000)),' ','')
where id>1 and id 0
begin
print '表: '+@tableName+ ',列: '+@columnName+ '被更新 '+convert(varchar(10),@iRow)+ '条记录; '
end
fetch next from cur1 into @columnName
end
close cur1
deallocate cur1
fetch next from cur into @tableName,@tbID
end
print '数据库共有 '+convert(varchar(10),@iResult)+ '条记录被更新!!! '
close cur
deallocate cur
set nocount off
declare @t varchar(555),@c varchar(555) ,@inScript varchar(8000)
set @inScript=''
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
exec('update ['+@t+'] set ['+@c+']=replace(cast(['+@c+'] as varchar(8000)),'''+@inScript+''','''')' )
fetch next from table_cursor into @t,@c
end
close table_cursor
deallocate table_cursor;

---------------------------------------------------------------
彻底杜绝SQL注入
1.不要使用sa用户连接数据库
2、新建一个public权限数据库用户,并用这个用户访问数据库
3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限
4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×”
5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高):
代码如下:

DECLARE @T varchar(255),
@C varchar(255)
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 print @c
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor

    
 
 

您可能感兴趣的文章:

  • ORACLE数据库常用字段数据类型介绍
  • RESIN做服务器,从数据库里提取字段值,页面输出顺序必须与字段顺序一致吗?
  • 在Java中,用Mircosoft SQL Server数据库,请问要进行日期字段的读取,用( ResultSet rs ; rs.getDate(1),其中1代表相应的字段为 DateTi
  • 如何将数据库表中每个字段的字段描述在JSP文件中显示出来?
  • 数据库递增字段的问题。
  • 从数据库得到多字段内容为何出错?
  • php中单个数据库字段多列显示(单字段分页、横向输出)
  • 为什么我从数据库中取记录时最多只取两个字段,多于三个字段则报错
  • oracle 实际值超过数据库某个字段指定长度报错解决
  • 请问如何取出SQL数据库里某表某字段的description内容
  • 如何在jsp中得到数据库中某张表的字段?
  • java怎样读取数据库表中字段的数据类型?
  • 急!急!数据库字段名称中有特殊符号(/,(),空格,:)在访问数据库时应该是如何处理
  • 怎样对一个数据库里的字段求和?
  • 请问jboss+oracle文件怎样配置,数据库中文字段不为乱码
  • 谁能给我一个PipedInputStream and PipedOutputStream 怎么用的例子,我想用数据库image字段对另一个imaeagezi字段
  • 如何成功读取并显示SQL数据库中image类型字段?
  • 关于jsp中取数据库中字段名的问题(急急急急急,马上解答马上给分)
  • java中的数据库结果集可以被赋值吗,可以通过结果集的方法来更新数据库字段吗?
  • !!!在Java中如何取得Resultset中的datetime和timestamp字段?数据库是SQLServer
  • sql 查询所有数据库、表名、表字段的代码
  • mysql查询字符串替换语句小结(数据库字符串替换)
  • Discuz批量替换帖子内容的方法(使用SQL更新数据库)
  • 在MySQL中用正则表达式替换数据库中的内容的方法
  • sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
  • 定时导出mysql本地数据替换远程数据库数据脚本分享
  • 批量替换sqlserver数据库挂马字段并防范sql注入攻击的代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sqlserver 数据库被注入解决方案
  • sql注入数据库修复的两种实例方法
  • SQL数据库的高级sql注入的一些知识
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • 如何监控数据库的数据,如果数据库数据更改,就通知Server
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • 散分:Jbuilder6开发数据库应用请问你们都用什么数据库? 免费的数据库有那些?
  • 文档数据库mongodb与列式数据库hbase详细比较
  • 如何从数据库中或文本文件中提取数据到另一个数据库中?
  • nosql数据库levedb介绍及levedb最新版1.18下载安装
  • 用JDBC连接Oracle数据库时,如何向数据库中写日期型数据(格式)?谢了!
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 开发java下的数据库程序,用什么数据库引擎?
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
  • 我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • sql 语句 取数据库服务器上所有数据库的名字
  • 删除数据库中重复记录方法介绍及代码参考
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • Mongodb数据库服务的开启与关闭详细介绍
  • 数据在页面写不进数据库,也不可以从数据库中读出是什么原因?
  • 如何实现 coreos 下Docker 与分布式数据库结合
  • sql语句获取数据库服务器上所有数据库的名字
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 请问谁有Applet连接远程Access数据库并且显示数据库内容的例子!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3