开发者网络 动网主机 支持论坛 邮局 帮助
当前位置:网络学院ASP技术客户端相关 → ASP程序密码验证漏洞
ASP程序密码验证漏洞
日期:2000年9月8日 作者: 人气:     [ ]
这个漏洞其实是很多网站都存在的,特别是提供用ASP编写的聊天室,BBS等(其它的语言我不懂,但我想也会存在这方面
的洞的。)。

一般来说,我们在验证用户是否合法时,会用如下的语句:

set db=server.CreateObject("ADOdb.recordset")

sqlstr=select * from table where user='"&request("user")&"' and password='"&request("password")&"'"

db.open sqlstr,"DSN=aa;",1然后检测得到的表是否为空,如果为空则用户非法,如果不为空则用户是合法的。

if db.eof and db.bof then

ok="no"

else

ok="yes"

end if这段程序单从技术角度看规范的,但从安全角度看就存在一个非常大的洞。因为我们可以构造一个特殊的用户
口令和用户名从而进入受保护的系统内部。

user='aa' or user<>'aa'

password='aa' or password<>'aa'

相应的在浏览器端的用户名框内写入:aa' or user<>'aa

口令框内写入:aa' or password<>'aa,注意这两个字符串两头是没有'的。

这样就可以成功的骗过系统而进入。

理论虽然如此,但要实践是非常困难的,下面两个条件都必须具备。

1.你首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样你才能准确的构造出这个进攻
性的字符串。实际上这是很难猜中的。

2.系统对你输入的字符串不进行有效性检查。

从这儿可以看出源码泄露的漏洞有时是致命的!!

我想出的解决办法:

1.就象yexiaolu所说的,分开写,可以看看他的贴子。

2.将存储用户名和用户口令的字段取两个毫不相干的名字,让攻击者猜不中。

3.对用户输入的数据进入有效性检查,如替换掉'等。

4.可以考虑对口令进行简单的加密,如将输入的口令字符串变换一下字符串中字符的位置等都可以有效的防止这种进
攻。

5.最重要的一点,不要泄露你的源码!!!!

(出处:)

相关文章:
 
·SQL Server 2000 SP4发布
·Sql Server 2005最新CTP简介及截图
·微软发布数据库新测试版 最终版明夏登场
·网络社区论坛即将成为互联网下一热点
·SET NOCOUNT的用法和注意事项
·全正则的检测IP是否合法的函数
·判断一个access数据库中某个表是否存在的方法
·用Asp生成条形码
·数字小写到英文大写的转换
·在不支持FSO的服务器上使用XMLDOM创建HTML文件
相关软件:
 
·拓域会员核心系统 v1.02
·深博贴吧(仿百度)双数据库版 v1.5
·通用草稿自动保存系统SipoAutoSaver v2.0
·BJXSHOP网上开店专家 v6.0 SP1 Build 20060118
·企业网站智能管理系统(TZIMS) v1.5
·bzmtv v1.0 正式版
·宜兴二级域名申请系统SQL版
·Mslove交友系统 v3.0
·亿人通讯录 v3.0
·深博贴吧(仿百度)双数据库版 v1.0
说明:本站部分内容收集于网络,如有侵犯您的权益请来信告知,我们会第一时间进行处理,谢谢
 → 特别推荐
 → 热点TOP10

关于本站 | 诚聘英才 | 业务合作 | 联系我们 | 广告合作 | 收藏本站

海口动网先锋网络科技有限公司版权所有
Copyright ? 2000 - 2003 AspSky.Net
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077