用户名: 密码: 验证码: 注册           网站地图 高级搜索 RSS订阅 收藏本站
山东十七地市站长联盟信息: 济南 青岛 淄博 枣庄 东营 烟台 潍坊 济宁 泰安 威海 日照 莱芜 临沂 德州 聊城 滨州 菏泽      
您的位置:主页>站长在线>站长茶馆>

编程ASP注入应用漏洞解决方法

[ 来源: | 作者: | 更新日期:2007-12-30 22:48:16 | 评论 0 条 | 我要投稿 ]

       1、WEB应用服务器与DB服务器分别使用不同的机器来存放,并且之间最好通过防火墙来进行逻辑隔离,因为除了有程序在探测 sa 没密码的SQL Server,SQL Server 本身及大量的扩展存储过程也有被溢出攻击的危险。 字串1

       2、ASP程序连接 SQL Server 的账号不要使用sa,或任何属于Sysadmin组的账号,尽量避免应用服务有过高的权限,应使用一个db_owner权限的一般用户来连接数据库。 字串2

  3、数据库服务器尽量不要与公网进行连接,如果一定要直接提供公网的连接存储,应考虑使用一个非标准端口并限制IP地址来进行连接。

字串7

  4、SA一定要设成强悍的密码,尤其是SQL Server 2000以前的版本,在默认安装Sql时sa账号没有密码,而一般管理员装完后也忘了或怕麻烦而不更改密码。 字串5

  5、改掉缺省的Web虚拟路径,不要使用IIS装好后预设的<系统盘>\Inetpub\WWWRoot路径,否则利用前面叙述的另存为方式,很容易在该目录下动手脚。

字串3

  6、将平时不使用的但功能强大的扩展存储过程删除。 字串6

  7、使用网络和主机IDS来监控重要系统的运行状况。 字串4

  8、随时注意是否有新的补丁需要补上,目前SQL2000最新的补本包为SP4。 字串7

  9、尽量的利用ASP 或者 ASP.NET 在服务器端检查与限制输入变量的类型与长度,过滤掉不需要的内容。要注意的是这些检查不只是要放在前端,后端也要检测。 在前端利用Html Input 标签的MaxLength属性来限制输入长度,或是以JScript编写程序来限定文本域的长度,但是只要将该网页另存为,修改内容后(一般只要改写Form的Action属性以及Input的MaxLength属性),重新用浏览器打开更改过后的页面就可以躲过这些浏览器前端的检查。

字串5

  10、使用容错语句,不要显示错误信息到前端,利用VBScript语法的On Error Resume Next来屏蔽SQL的出错提示,并搭配If Err.Number<>0 Then的错误处理方式,自行将错误重定向到适当的错误处理网页,如此系统将更稳固,且黑客也不容易透过错误信息来探知系统的内部运作方式。或者,也可以修改<系统盘>\Winnt\Help\iisHelp\common\500-100.asp预设网页,最简单的方式就是将它改名。例:

字串2

  on error resume next 字串1

  sql2="select * from dv_admin where username=’"&ReqStr("username")&"’" 字串5

  11、使用过滤和防注入函数来过滤掉一些特殊的字符,防注入函数示例: 字串9

 Function ReqNum ( StrName ) /* 数值型变量过滤 */ 
ReqNum = Request ( StrName ) 
if Not isNumeric ( ReqNum ) then 
Response.Write "参数必须为数字型!" Response.End 
End if 
End Function 
Function ReqStr ( StrName ) /*字符型和搜索型过滤 */ 
ReqStr = Replace ( Request(StrName), "’", "’’" ) /* 用replace函数屏蔽单引号 */ 
End Function 
以下三句SQL语句,说明一下调用方法: 
1.SQL="select * from dv_admin where username=" & ReqNum("username")2.SQL="select * from 
dv_admin where username =’" & 
ReqStr(" username ") & "’" 3.SQL="select * from username where UserName like ’%" & ReqStr 
(" username ") & "%’" 

字串4

12、若想更换SQL Server 的执行服务账号,则该帐号需要以下的权限:  字串9

Log On Locally 
Log On as a Batch 
Access this computer from the Network 
Log on as service 
Replace a process level token 
Act as part of the operating system 
Increase quotas 

字串1

  13、使用Microsoft基线安全性分析器(MBSA)来评估服务器的安全性,并按照它的建议来更改系统的设定。 字串2

  MBSA 是一个扫描多种Microsoft产品的不安全配置的工具,包括SQL Server和Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)。它可以在本地运行,也可以通过网络运行。 字串8

  该工具针对下面问题对SQL Server安装进行检测:

字串7

  (1) 过多的sysadmin固定服务器角色成员。 字串5

  (2) 授予sysadmin以外的其他角色创建CmdExec作业的权利。 字串5

  (3) 空的或简单的密码。

字串9

  (4) 脆弱的身份验证模式。

字串5

  (5) 授予管理员组过多的权利。 字串7

  (6) SQL Server数据目录中不正确的访问控制表(ACL)。

字串5

  (7) 安装文件中使用纯文本的sa密码。

字串9

  (8) 授予guest帐户过多的权利。

字串9

  (9) 在同时是域控制器的系统中运行SQL Server。

字串5

  (10) 所有人(Everyone)组的不正确配置,提供对特定注册表键的访问。

字串6

  (11) SQL Server 服务帐户的不正确配置。

字串7

  (12) 没有安装必要的服务包和安全更新。

字串2


Tags:解决 方法 漏洞 应用 注入 编程 SQL 使用 Server username
您的评论
用户名:新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为