删除sql注入
三种方法:第一种针对单个表 第二种针对单个表字段太多的情况(print输出有字数限制) 第三种针对于单个库(最强模式可直接将库中所有表的所有字符串类型字段全部更新)
第一种:直接导出sql语句
declare @curTable varchar(500),
@FilterStr varchar(500);--过滤字符串 字符串及之后的数据将被替换为空
set @FilterStr='</title><style>.alx2{';
set @curTable='users_log_table';
DECLARE
@SQLList varchar(8000),
@tableName VARCHAR(1000),
@name VARCHAR(1000),
@type VARCHAR(1000);
set @SQLList='';
BEGIN
-- 定义游标.
DECLARE c_test_main CURSOR FAST_FORWARD FOR
-- select [dbid],[name] from sysdatabases where dbid>4;--查询数据库名称
select b.name as tableName,a.name as columnName,c.name as columnType from syscolumns a inner join sysobjects b on a.id=b.id inner join systypes c on a.xtype=c.xtype WHERE a.id=OBJECT_ID(N'['+@curTable+']') And c.name not like 'sysname' ORDER BY colid -- 打开游标.
OPEN c_test_main; WHILE 1=1
BEGIN
-- 填充数据.
FETCH NEXT FROM c_test_main INTO @tableName,@name,@type;
-- 假如未检索到数据,退出循环.
IF @@fetch_status!= 0 BREAK; if @type='varchar' or @type='nvarchar'
begin
--select @tableName,@name,@type;
set @SQLList=@SQLList+';update ['+@tableName+'] set ['+@name+']=replace(['+@name+'],isnull(substring(['+@name+'], case charindex('''+@FilterStr+''',['+@name+']) when 0 then len(['+@name+'])+1 else charindex('''+@FilterStr+''',['+@name+']) end ,len(['+@name+'])),''''),''''); '+(char(10)+char(13));
end
else if @type='ntext' or @type='text'
begin
set @SQLList=@SQLList+';update ['+@tableName+'] set ['+@name+']=cast(replace(cast(['+@name+'] as varchar(8000)), isnull(substring(cast(['+@name+'] as varchar(8000)),case charindex('''+@FilterStr+''',cast(['+@name+'] as varchar(8000))) when 0 then len(cast(['+@name+'] as varchar(8000)))+1 else charindex('''+@FilterStr+''',cast(['+@name+'] as varchar(8000))) end,len(cast(['+@name+'] as varchar(8000)))),''''),'''') as ntext ); '+(char(10)+char(13));
end
END; -- 关闭游标
CLOSE c_test_main;
-- 释放游标.
DEALLOCATE c_test_main;
END
print @SQLList;
删除sql注入的更多相关文章
- 删除SQL注入的一些方法总结
sql替换法: ); set @myStr='oa_20121026new.bak</title><style>.alx2{position:absolute;clip:rec ...
- SQL中批量删除被注入的恶意代码的方法
下文将为您介绍SQL中批量删除被注入的恶意代码的方法,供您参考,如果您也遇到了这样的问题,不妨一看,相信对您会有所帮助. 1,如果你的数据表很少的话,那么写几条简单的sql就搞定了 对于表中的nvch ...
- [代码审计]云优cms V 1.1.2前台多处sql注入,任意文件删除修复绕过至getshell
0X00 总体简介 云优CMS于2017年9月上线全新版本,二级域名分站,内容分站独立,七牛云存储,自定义字段,自定义表单,自定义栏目权限,自定义管理权限等众多功能深受用户青睐,上线短短3个月,下载次 ...
- Youke365_2_4 一处Sql注入漏洞以及一处任意文件删除
本文作者:X_Al3r Prat 0 自白 每一天都是新的一天.没啥吐槽的,步入正题 /system/category.php 文件一处Sql注入## 80-87行代码 $root_i ...
- PHP:网展cms后台任意文件删除和sql注入
0x01:目录结构 可以发现Frameword是框架的文件 install安装 public公共文件 uploads储存上传之类的文件 webuser后台文件 Home前台文件 0x02.csrf漏洞 ...
- 深入理解SQL注入绕过WAF和过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
- Entity Framework关于SQL注入安全问题
1.EF生成的sql语句,用 parameter 进行传值,所以不会有sql注入问题 2.EF下有涉及外部输入参数传值的,禁止使用EF直接执行sql命令方式,使用实体 SQL 参考: https: ...
- 防止sql注入和sqlmap介绍
sql注入问题从WEB诞生到现在也一直没停过,各种大小公司都出现过sql注入问题,导致被拖库,然后存在社工库撞库等一系列影响. 防止sql注入个人理解最主要的就一点,那就是变量全部参数化,能根本的解决 ...
- SQL注入攻防入门详解
=============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...
随机推荐
- 一个类似于postman的协议测试工具
协议测试工具使用postman相当便捷,不过有一个问题,就是每个人都要装一个这个东西,并且测试文件导来导去,还是觉得麻烦了点. 最重要的是postman不能修改,有一些定制功能postman明显力不从 ...
- @Mock与@InjectMocks的区别
@Mock: 创建一个Mock. @InjectMocks: 创建一个实例,简单的说是这个Mock可以调用真实代码的方法,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中. 注意: ...
- Logback中文文档(二):体系结构
logback Logback 的基本结构充分通用,可应用于各种不同环境.目前,logback 分为三个模块:Core.Classic 和 Access. Core模块是其他两个模块的基础.Class ...
- 基于Java对图片进行二值化处理
一直以来对Java的图形处理能力表无力,但好像又不是那么一回事,之前用PHP做过一些应用,涉及到验证码的识别,其中有个图片二值化的步骤,今天换成Java来实现下 在java的扩展包javax.imag ...
- MyEclipse如何恢复删掉的文件
今天一不小心删了项目里的两个包,心里那个痛啊,一想MyEclipse这么强大,应该会有恢复文件的功能吧,要不就太坑了啊. 果不其然让我找到了方法: 如图:右击项目选择 然后在弹出的页面勾选需要恢复的文 ...
- ng-bind-html-unsafe的替代
angular 1.2以后(或更早?)移除了ng-bind-html-unsafe,那么我要用这个directive来绑定html代码怎么办?随便一测试,它是不支持把html直接传给它的: //htm ...
- javascript的console命令
1.分类输出 console.log('文字信息'); console.info('提示信息'); console.warn('警告信息'); console.error('错误信息'); 2.分组输 ...
- QT 运行崩溃:The inferior stopped because it received a signal from the Operating System
最近在研究QT自带的boxes例子,自己派生一个图形项,但是在运行生成该图形项时程序直接退出了~ Qt Creater调试代码,问题定位如下代码行: 执行1270行时弹出错误消息框: 于是上网查找资料 ...
- ajax传JSON时设置的contenttype导致JAVA中request.getParameter("")怎么也接收不到数据
ajax传JSON时设置的contenttype默认值是application/x-www-form-urlencoded, 当ajax传JSON时设置的contenttype 如果是applicat ...
- logback.xml常用配置详解
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false& ...