悲哀的数据库注入替换

最近 网站的数据库被注入了代码,同事要我搞个SQL给他,
    刚好自己收藏下, 免得以后在写,最好是不要用了

废话少说 ,上码
   
    以下sql语句针对于数据库列后边注入代码的情况.
        nvarchar 类型的替换方式
     
        update tablexxx

set columns=replace(columns , substring(columns , charindex(‘</a‘ , columns),len(columns)-charindex(‘</a‘ , columns)+1),‘‘)

where  charindex(‘</a‘ , columns),len(columns) >0

text , ntext 类型的替换方式

(1)当字段长度小于8000
       update test set textdemo=replace(convert(varchar(8000),textdemo),

substring(textdemo , charindex(‘<div class="wxmsjhqx"‘ , textdemo),len(convert(varchar(8000),textdemo))-charindex(‘<div class="wxmsjhqx">‘ , textdemo)+1),‘‘)

where  charindex(‘<div class="wxmsjhqx"‘ , textdemo) >0

(2)大于 小于 8000多可以用

declare @s_str varchar(8000) ,@d_str varchar(8000)

--要替换的字符串

select @s_str =‘要替换的字符串‘,

@d_str=‘‘

declare @ptrval varbinary(16) ,@str int ,@rplen int

declare cur cursor for select textptr(textdemo),

charindex(‘<div class="wxmsjhqx">‘ ,textdemo)-1,

len(@s_str)

from test where textdemo like ‘%<div class="wxmsjhqx">%‘

open cur

fetch next from cur into @ptrval ,@str ,@rplen

while(@@fetch_status =0)

begin

declare @sql nvarchar(1000)

set @sql = ‘UPDATETEXT test.textdemo @ptrval ‘+ltrim(@str)+‘ ‘+ltrim(@rplen)+‘ N‘‘‘‘‘

exec sp_executesql @sql ,N‘@ptrval varbinary(16)‘ ,@ptrval

print @rplen

print @str

print @ptrval

fetch next from cur into @ptrval ,@str ,@rplen

end

close cur

deallocate cur

数据 表

CREATE TABLE [dbo].[test](

[id] [int] IDENTITY(1,1) NOT NULL,

[mytext] [nvarchar](3000) COLLATE Chinese_PRC_CI_AS NULL,

[textdemo] [text] COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

语句比较简单。

时间: 2024-08-26 12:15:16

悲哀的数据库注入替换的相关文章

access数据库注入

access数据库渐渐的被很多人遗忘. 而大部分安全人员也对access数据库也不感冒. 最近在西晋学院玩了玩它的web题目,没想到在西晋上面看到不少的asp的题.其中不乏有数据库注入的. access数据库并不像mysql那样方便,可以拥有information_schema这个包含数据各种数据库,表以及字段信息的"新华字典". 虽然有一个msysobjects,但是大多情况下即使管理员也没办法读取其里的信息,因为读取它需要设置权限. 下面从西晋学院里面的access盲注来说一下.

各类数据库注入笔记

ASP网站的后台数据库几乎全部是ACCESS和SQL ServerJSP环境应用最多的是利用JDK和Tomcat来搭建site:xx.com inurl:php?id= 爆库一般是加上%5C 或者inc等一些符号让系统在调用数据库时出现错误 然后返回的数据中提示调用数据库出现错误错误里面一般都含有数据库的绝对路径 92 conn.asp往往是ASP程序里包含数据库连接信息的文件 inurl:/inc+conn.asp转到父目录http://www.jegsworks.com/lessons/re

.Net Core 3.0依赖注入替换 Autofac

今天早上,喜庆的更新VS2019,终于3.0正式版了呀~ 有小伙伴问了一句Autofac怎么接入,因为Startup.ConfigureServices不能再把返回值改成IServiceProvider了,原来的替换依赖注入容器就不可行了,我随口说了一下Host上面.UseServiceProviderFactory 本以为就这么简单,他问我要个例子,自己折腾了一下,发现事情没有这么简单 .UseServiceProviderFactory<TContainer>要搭配Startup里面写一个

sqlite数据库注入

sqlite数据库大部分在开发时使用,其注入语句也与其他数据库不同 sqlite数据库有一张sqlite_master表,里面有type/name/tbl_name/rootpage/sql记录着用户创建表时的相关信息 sqlite数据库的注释符是两个横杠“--”,空格会自动用加号表示 测试回显位置, /new_list.php?id=1 union select 1,2,3,4 开始爆这个表的字段值/new_list.php?id=1 and 1=2 union select 1,name,s

mysql 数据库字符串替换

UPDATE `table_name` SET `field_name` = replace (`field_name`,'from_str','to_str') WHERE `field_name` LIKE '%from_str%' table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串

mysql数据库的替换

将cdb_pms表subject字段中的Welcom to替换成 欢迎光临  复制代码 代码如下: UPDATE `cdb_pms`  SET `subject` = REPLACE(`subject`, 'Welcome to', '欢迎光临')  WHERE INSTR(`subject`,'Welcome to') > 0  替换cdb_posts表的message字段,将"viewthread.php?tid=3989"替换成"viewthread.php?ti

利用DEDE正则批量查找替换数据库的自定义内容

正则的表达式在MY SQL中也有应用,但是在具体将查找的东西直接进行Replace的时候目前还不能解决,幸好后台中有个dede利用 正则,利用dede正则批量替换数据库中内容,这样我们完全减小了自己的工作量了. 例如网站的一个例子, 是替换一个div中的内容,摘抄实践下,关键还是自己去体会,多用下正则,还是不错的.正则相关的文章我在我的博客中也多次 提到了他的多种运用途径.如果你都掌握好它的话,你的工作效率就会成倍的提高了.下面这个正则的用途是查找数据库的中自 定义的DIV层中运用,一般这种用法

基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入

概述 上一章,我们简单的搭建了依赖注入的三层架构,但是,没有真正的使用,而我们现在就使用MySQL数据,基于 EF Core 的 DbFirst 进行框架搭建. 微软爸爸官方文档:使用新数据库在 ASP.NET Core 上开始使用 EF Core    数据库表字段命名规范 步骤 1. 右击 Entity 项目,点击"管理NuGet程序包" 2. 安装以下三个包 Microsoft.EntityFrameworkCore     安装版本:2.1.0 Microsoft.Entity

mysql注入篇

博客这个东西真的很考验耐心,每写一篇笔记,都是在艰难的决定中施行的,毕竟谁都有懒惰的一面,就像这个,mysql注入篇,拖拖拖一直拖到现在才开始总结,因为这个实在是太多太杂了,细细的总结一篇太烧脑. 由于我没有找见php的实战本地源码,所以只好用一些漏洞平台的源码来演示了,演示不了的,只能列代码,没有实操图.毕竟找不见源码,,没法... 首先我们都知道mysql数据库和Access数据库的不同,不同在mysql是分多个数据库名的. 就像像我上图贴的这个格式一样,原谅我是在是没有本地源码,连数据库的