文章搜索: 分类 关键字

   您的位置:首页网络编程Asp专区 → ASP程序登录验证漏洞
ASP程序登录验证漏洞
日期:2006-1-22 3:37:46 人气:     [ ]
原理:

  很多网站把密码放到数据库中,在登陆验证中用以下sql,(以asp为例)

  sql="select * from user where username='"&username&"' and pass="& pass&" 此时,您只要根据sql构造一个特殊的用户名和密码,如:ben or 1=1 hehe ...是不是进去了??

  漏洞的利用: sql="select * from user where username='"&username&"' and pass="& pass&" 此时,您只要根据sql构造一个特殊的用户名和密码,如:ben or 1=1 这样,程序将会变成这样: sql="select * from user where username='"&ben or 1=1&"' and pass="&pass&" 学过编程的应该知道: or是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立.而在语言中,是以1来代表真的(成立).那么在这行语句中,原语句的"and"验证将不再继续,而因为"1=1"和"or"令语句返回为真值. 解决方案: 由漏洞的发现者提供的解决方法:

  比较好的应该按照以下方式:
  1、处理输入字符,
  2、处理‘,|等字符
  3、select * from user where user=’" & User & " "
  4、如果返回不为假,则取密码pass=rs("passwd")
  5、判断:if pass=password
  6、得出结论。

出处:CnCode转载收集 作者:不详
<---->
 
| 关于本站 | 帮助(?) | 广告服务 | 版权声明 | 业务合作 | 发展历程 | 加盟我们 | 联系我们 | 中国源码中心 ≮为您提供建站帮助≯

  中国源码中心 版权所有 Copyright© 2002-2006 Www.CnCode.Com, All Rights Reserved. Powered By 中国源码中心