第一步是在SQL
服务器上制作最新的安全补丁
程序。如果这一步做得不好,那我们就不必继续了。
第二步是修改默认的1433端口和隐藏SQL Server,禁止对试图枚举网络上现有的SQL Server客户端广播的响应。此外,你还需要屏蔽1433端口的TCP / IP过滤和隐藏你的SQL Server数据库尽可能多。这是一个让攻击创建SQL Server帐户,你不能使用查询分析器的下一次攻击使远程登陆。从ASP、PHP等页面构造恶意的陈述,还需要查看问题的返回值,总是不是比直接查询分析器获得。所以我们需要做的第一件事是让别人进入,也不允许攻击者做呢修改后的方法:企业管理器/数据库组>属性> > > - >传统
网络配置属性,在这里您将
修改默认端口、隐藏和SQL服务器。
第三步是非常重要的一步,和SQL注入是
经常在
网页代码产生的。作为一个
系统管理员或数据库管理员,你不能总是看每一段代码,看代码不能保证我们的过失。如何做到这一点,我们应该从数据库角色开始在最低点使数据库
用户的
权限,SQL Server的默认权限是很痛苦的。权利非常高。他们不能做任何特权有限的事。系统管理员和db_owner真是又爱又恨。一旦攻击者
确认网站的SQL注入漏洞的存在,必须有一步测试SQL Server用户的权限,通常选择is_srvrolemember帮助('sysadmin),或选择is_member('db_owner),或用户(= 0字符和数字相比,SQL Server会
提示一个
错误消息的信息你可以知道一些敏感信息)语句测试。路上,我不敢多说。即使是错的,他不敢在联盟的人。目前,如果网站使用SA权限的数据库用户,加上确认的绝对
路径,网页,然后宣布在你的website.db_owner也是一样的。如果确认了绝对路径,那么在您的机器中,比如海阳,有50%的机会给您提供特洛伊木马的Web方式。因此,在这里,我们确认我们必须
创建自己的权限,以便攻击者无法找到要去的地方。
创建SQL Server数据库角色(企业管理器)的
方法 创建SQL Server数据库角色
1。展开服务器组并展开服务器。
2。展开数据库
文件夹,然后展开数据库以创建其中的角色。
三.右击该角色,然后单击新建数据库角色
命令。
4。在名称框中
输入新角色的名称。
5。单击Add将成员添加到标准角色列表中,然后单击要添加的一个或多个用户。
只能将选定数据库中的用户添加到角色中。
对象权限
在
处理数据或
执行过程时需要被称为对象权限的权限类:
选择、插入、更新和
删除可以应用于整个表或视图的语句权限。
选择并更新语句权限,可以选择性地应用于表或视图中的单个列。
选择权限,该权限可应用于用户定义的
函数。
插入和删除语句权限
影响整个行,只能应用于表或视图,不能应用于单个列。
执行语句权限,它会影响存储过程和函数。
语句权限
参与创建一个数据库或数据库项目的活动,如表或存储过程,需要另一类称为语句权限的权限。例如,如果用户能够在数据库中创建表,用户应该授予CREATE TABLE语句的权限。语句权限(如创建数据库)适用于语句本身,并不适用于一个特定的对象在数据库中定义。
语句权限有:
备份数据库
备份日志
创建数据库
创建默认的
创建函数
创建程序
创建规则
创建表
创建视图
默示许可
提示访问
控制的活动,只能由会员或预定义的对象所有者的数据库系统进行的
作用。例如,sysadmin固定服务器角色的成员自动继承所有权限
操作或在SQL Server的
安装角度。
数据库对象所有者和默认权限可以执行对象的所有活动。例如,具有表的用户可以查看、添加或删除数据、更改表定义,或控制允许其他用户在表上操作的权限。
db_owner在数据库的所有权限。
db_accessadmin可以添加或删除用户ID。
db_securityadmin可以管理所有权限对象的所有权,角色及角色成员。
db_ddladmin发出所有的DDL,但没有批准,撤销,或否认声明发布。
db_backupoperator发出DBCC,
检查站,并备份报表。
db_datareader可以选择所有的数据在任何用户表中的所有数据database.db_datawriter可以改变在任何用户数据库中的表。
db_denydatareader不能选择任何用户的任何数据在数据库中的表。
db_denydatawriter不能改变任何数据的任何用户数据库中的表。
在这里,配置新的数据库角色的权限,如表、视图、存储过程,等等。然后
取消db_owner和db_securityadmin和db_backupoperator,不给攻击者备份数据库和创建表的机会,但一旦攻击者有这些权限,那么你的网站仍然是一个非常危险状态。也要注意服务器角色不能选择创建一个数据库帐户时,重要的。
第四步是修改SQL Server内置存储procedure.sql服务器安装或其他方面的估计,它有许多危险的存储过程了。你可以读取
注册表信息,写入注册表信息,读取
磁盘、共享信息等。你可以看到这里,你可能认为我有网站的其他代码,而不是
查询分析器,它可以查找并输出结果。给你的权利,你不能这样做,否则你不能看到的信息。如果你这样想是不对的。注意,如果攻击者具有创建表的权限,然后创建一个临时表,然后将信息插入到表中,然后选择,然后与数量相比,让SQL Server错误,那么结果会出来…所以…我们希望提供一个宁可错杀,小姐的态度修复。
首先,列出危险的内置存储过程:
xp_cmdshell
xp_regaddmultistring
xp_regdeletekey
xp_regdeletevalue
xp_regenumkeys
xp_regenumvalues
xp_regread
xp_regremovemultistring
xp_regwrite
自动
脚本:
sp_oacreate
sp_oadestroy
sp_oamethod
sp_oagetproperty
sp_oasetproperty
sp_oageterrorinfo
sp_oastop
删除带有安全问题的SQL
进程。更全面。一切
都是为了安全!
删除带有隐藏安全风险的
扩展名:
执行sp_dropextendedproc'xp_cmdshell{删除这个扩展后,你将无法远程
连接数据库}
执行sp_dropextendedproc'xp_dirtree{删除这个扩展后,你将无法创建一个新的或附加数据库}
执行sp_dropextendedproc'xp_enumgroups
执行sp_dropextendedproc'xp_fixeddrives
执行sp_dropextendedproc'xp_loginconfig
执行sp_dropextendedproc'xp_regaddmultistring
执行sp_dropextendedproc'xp_regdeletekey
执行sp_dropextendedproc'xp_regdeletevalue
执行sp_dropextendedproc'xp_regread
执行sp_dropextendedproc'xp_regremovemultistring
执行sp_dropextendedproc'xp_regwrite
执行sp_dropextendedproc'xp_enumerrorlogs
执行sp_dropextendedproc'xp_getfiledetails
执行sp_dropextendedproc'xp_regenumvalues
恢复扩展
执行sp_addextendedproc'xp_cmdshell ','xplog70 DLL。
执行sp_addextendedproc'xp_dirtree ','xpstar DLL。
执行sp_addextendedproc'xp_enumgroups ','xplog70 DLL。
Exec sp_addextendedproc'xp_fixeddrives','xpstar.dll'
执行sp_addextendedproc'xp_loginconfig ','xplog70 DLL。
执行sp_addextendedproc'xp_regaddmultistring ','xpstar DLL。
执行sp_addextendedproc'xp_regdeletekey ','xpstar DLL。
执行sp_addextendedproc'xp_regdeletevalue ','xpstar DLL。
执行sp_addextendedproc'xp_regread ','xpstar DLL。
执行sp_addextendedproc'xp_regremovemultistring ','xpstar DLL。
执行sp_addextendedproc'xp_regwrite ','xpstar DLL。
执行sp_addextendedproc'xp_enumerrorlogs ','xpstar DLL。
执行sp_addextendedproc'xp_getfiledetails ','xpstar DLL。
执行sp_addextendedproc'xp_regenumvalues ','xpstar DLL。
全部
复制到SQL查询分析器
点击菜单查询-执行将删除SQL过程的安全问题(以上是7I24的积极用户的技术
支持)
更改默认的SA空
密码。不要使用SA帐户进行数据库链接。单个数据库有一个使用帐户。只有公开和db_owner权限了。
数据库不应放置在默认
位置。
不要在程序
文件目录下安装SQL。
以上是我们
禁止列表,例如,xp_cmdshell屏蔽方式是sp_dropextendedproc'xp_cmdshell ',如果必要的话,那么sp_addextendedproc'xp_cmdshelland'xpsql70。dll'are用来恢复。如果你不知道这xp_cmdshell。DLL文件的使用,你可以使用sp_helpextendedproc xp_cmdshell看哪个动态链接库xp_cmdshell在使用。此外,在屏蔽xp_cmdshell,我们需要
重命名xpsql70.dll文件以防止攻击者恢复SA。
我们这样做了,你的SQL服务器基本上是安全的,但是信息还是一样的。毕竟,我们不能取消选择,除非你的网站使用HTML。SQL注入的预防需要我们的程序员来关注它,这是治理的方法。