ASP程序密码验证问题 (MS,缺陷)

涉及程序:
MS IIS
  
描述
国内一大学生发现的NT网站的ASP程序密码验证漏洞
  
详细
来自: benjurry@263.net
原文如下:

很早就发现很多国内程序员对密码验证不注意,今天去了陈水扁(www.abian.net)的网沾,随手一试,居然发现有这种漏洞,真是让人笑破肚皮!
原理:
很多网站把密码放到数据库中,在登陆验证中用以下sql,(以asp为李)
sql="select * from user where username='"&username&"'and pass='"& pass&'"
此时,您只要根据sql构造一个特殊的用户名和密码,如:ben' or '1'='1
hehe ...是不是进去了??

-----------------------------------------------------------------------

解释:
上述的SQL语句是ASP程序的if判断的一部分,如果该语句返回为真,则密码验证通过。
输入 ben' or '1'='1这样的用户名之后,其验证的语句将执行为:
sql="select * from user where username='"& ben' or '1'='1 &"'and pass='"& pass&'"
因为1=1为真,由于 or 逻辑运算符的作用,这个语句将返回为真。
所以验证通过。

  
解决方案
ASP程序员应该用更严密的判断语句来防止这个安全问题
下面是发现者提出的解决方案:
比较好的应该按照以下方式:
1、处理输入字符,
2、处理‘,|等字符
3、select * from user where user=’ " & User & "' "
4、如果返回不为假,则取密码
pass=rs("passwd")
5、判断:if pass=password
6、得出结论。

时间: 2024-11-01 17:48:14

ASP程序密码验证问题 (MS,缺陷)的相关文章

ASP程序密码验证问题

程序|问题 涉及程序: MS IIS 描述 国内一大学生发现的NT网站的ASP程序密码验证漏洞 详细 来自: benjurry@263.net原文如下: 很早就发现很多国内程序员对密码验证不注意,今天去了陈水扁(www.abian.net)的网沾,随手一试,居然发现有这种漏洞,真是让人笑破肚皮!原理:很多网站把密码放到数据库中,在登陆验证中用以下sql,(以asp为李)sql="select * from user where username='"&username&

ASP程序密码验证漏洞解决方案

         网站建设初期,很多网站把密码放到数据库中,在登陆验证中用sql="select * from user where username='"&username&"'and pass='"& pass &'"查询用户名.密码,这种是很不安全的. 解决办法:构造特殊用户名和密码 方法一 构造以下的用户名: username='aa' or username<>'aa' pass='aa' or pas

ASP.NET Forms验证实现子域名(SubDomain)共享登陆下的缺陷

一.什么是单点登录 单点登录就是在多个web应用程序中,实现统一登录方式,一但登录了某web应 用程序,其它相关联的web应用程序都无需再次登录,一个地方退出,所有相关联的 web应用程序都退出. 二.通过利用ASP.NET Forms验证模式可以实现子域名(SubDomain)共享登陆下 的缺陷 要利用Asp.NET Form验证模式实现同一主域下不同子域名共享登陆状态需要进 行以下配置 配置Web.config 1.把Asp.net的认证模式改为Forms认证模式,domain 要等于你的应

ASP与数据库运用:密码验证

数据|数据库 文/龙儿 (2000/10/30 ) Microsoft 的大作ASP(Active Server Pages)以其易学易用.扩充性好.功能多而强等优点正掀起一场新的web编程革命(从严格意义上讲,编写asp并不是编程),它以令人吃惊的发展和普及速度大有取代由perl等语言编写的CGI(Common Gateway Interface,通用网关接口) 的势头.基于web page方式的web管理模式已经成为潮流,看看现在的网管们,有谁不会asp的编写呢?要管理?那你可能就要用到我这

用ASP的安全验证来对windows 2000的管理者密码进行在线修改

window|安全|在线 IIS的安全验证机制做得很好,我们可以用ASP的安全验证来对windows 2000的管理者密码进行在线修改. 当有人登录站点时,利用ServerVariables集合中的LOGIN_USER捕获登录帐号,前提是必须关闭IIS中允许匿名登录这个选项,然后在changepwd.asp文件中通过ADSI来修改密码. 以下是程序: changepwd.htm <body> <!--与该输入表单有关的客户端验证脚本(即不允许新密码为空和两次密码输入是否相等的判断)请自行

MS IIS虚拟主机ASP源码泄露(MS,缺陷)-ASP漏洞集

iis|虚拟主机    涉及程序:   MS Windows NT/IIS   描述:   共享目录导致ASP程序源码泄露   详细:   如果一个虚拟主机的根目录是映射到一网络共享目录,通过在ASP或者HTR扩展名后增加某些特殊字符,IIS服务器将反送出这个asp   或者htr文件的全部源代码.如果IIS的文件安装在本地驱动器上,就没有该泄漏源码这个问题.   在虚拟目录文件中的asp文件后增加一个符号"\",IIS就会泄漏该asp文件源代码.   例如,如果虚拟目录/asp/映射

MS IIS虚拟主机ASP源码泄露 (MS,缺陷)

iis|虚拟主机 涉及程序: MS windows NT/IIS 描述: 共享目录导致ASP程序源码泄露 详细: 如果一个虚拟主机的根目录是映射到一网络共享目录,通过在ASP或者HTR扩展名后增加某些特殊字符,IIS服务器将反送出这个asp或者htr文件的全部源代码.如果IIS的文件安装在本地驱动器上,就没有该泄漏源码这个问题. 在虚拟目录文件中的asp文件后增加一个符号"\",IIS就会泄漏该asp文件源代码.例如,如果虚拟目录/asp/映射到共享文件夹的\\server1\shar

带数据库的ASP用户名密码登录验证代码

  带数据库的ASP用户名密码登录验证代码,这个代码里有登录判断的完整逻辑,包括连接数据库,查询判断用户名和密码是否正确,返回重填,关闭数据库记录集等,对ASP初学者有相当好的借鉴价值: 这里连接的是SQLSERVER数据库,数据库就不上传了,里面有两个字段,name是存储用户名,userpassword是密码字段,自己手动创建个,修改本代码里面的数据库连接信息就可测试了.

[华为机试练习题]31.密码验证合格程序

题目 描述: 密码要求: 1.长度超过8位 2.包括大小写字母.数字.其它符号,以上四种至少三种 3.不能有相同长度超2的子串重复 说明:长度超过2的子串 题目类别: 字符串,数组 难度: 中级 运行时间限制: 10Sec 内存限制: 128MByte 阶段: 入职前练习 输入: 一组或多组长度超过2的子符串.每组占一行 输出: 如果符合要求输出:OK,否则输出NG 每行输出对应一组输入的结果: 样例输入: 021Abc9000 021Abc9Abc1 021ABC9000 021$bc9000