MSSQL 网站项目被 注入 的主要表现为:在 数据库 字段中加入了script src=http://aaa.bbb.ccc/js.js /script 类似这样的一段代码。 数据库 典型的JS 注入 。 主要原因为3 1、攻击者获得SQLServer的读写权限,直接操作 数据库 进行 注入 解决方式 sql2000做法
MSSQL 网站项目被注入的主要表现为:在数据库字段中加入了 script> 类似这样的一段代码。数据库典型的JS注入。
主要原因为3
1、攻击者获得SQLServer的读写权限,直接操作数据库进行注入
解决方式
sql2000做法:
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
sql2005做法:
1、在系统视图找到sysobjects a,syscolumns b ,属性,进入权限,找到SELECT后面拒绝打勾即可。
2、通过字符串进行注入。
解决方式:
凡是输入字符串全部格式化,过滤JS语句以及SQLServer关键字
1、字符串过滤JS代码先
代码
#region 过滤JS/CSS脚本
///
/// 过滤JS脚本
///
///要过滤的内容
///
///