ASP程序密码验证漏洞
2005-11-02 11:32
351 查看
漏洞描述:
很多网站把密码放到数据库中,在登陆验证中用以下sql,(以asp为例)
sql="select * from user where username='"&username&"'and pass='"& pass &'"
此时,您只要根据sql构造一个特殊的用户名和密码,如:ben' or '1'='1
就可以进入本来你没有特权的页面。再来看看上面那个语句吧:
sql="select * from user where username='"&username&"'and pass='"& pass&'"
此时,您只要根据sql构造一个特殊的用户名和密码,如:ben' or '1'='1
这样,程序将会变成这样: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&"
or 是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立.而在语言中,是以1来代表真的(成
立).那么在这行语句中,原语句的"and"验证将不再继续,而因为"1=1"和"or"令语句返回为真值.。
另外我们也可以构造以下的用户名:
username='aa' or username<>'aa'
pass='aa' or pass<>'aa'
相应的在浏览器端的用户名框内写入:aa' or username<>'aa 口令框内写入:aa' or pass<>'aa,注意这两个字符串两头是
没有'的。这样就可以成功的骗过系统而进入。
后一种方法理论虽然如此,但要实践是非常困难的,下面两个条件都必须具备。
1. 你首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样你才能准确的构造出这个进攻性的字符
串。实际上这是很难猜中的。
2.系统对你输入的字符串不进行有效性检查。
问题解决和建议:
对输入的内容验证和"'"号的处理。
很多网站把密码放到数据库中,在登陆验证中用以下sql,(以asp为例)
sql="select * from user where username='"&username&"'and pass='"& pass &'"
此时,您只要根据sql构造一个特殊的用户名和密码,如:ben' or '1'='1
就可以进入本来你没有特权的页面。再来看看上面那个语句吧:
sql="select * from user where username='"&username&"'and pass='"& pass&'"
此时,您只要根据sql构造一个特殊的用户名和密码,如:ben' or '1'='1
这样,程序将会变成这样: sql="select*from username where username="&ben'or'1'=1&"and pass="&pass&"
or 是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立.而在语言中,是以1来代表真的(成
立).那么在这行语句中,原语句的"and"验证将不再继续,而因为"1=1"和"or"令语句返回为真值.。
另外我们也可以构造以下的用户名:
username='aa' or username<>'aa'
pass='aa' or pass<>'aa'
相应的在浏览器端的用户名框内写入:aa' or username<>'aa 口令框内写入:aa' or pass<>'aa,注意这两个字符串两头是
没有'的。这样就可以成功的骗过系统而进入。
后一种方法理论虽然如此,但要实践是非常困难的,下面两个条件都必须具备。
1. 你首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样你才能准确的构造出这个进攻性的字符
串。实际上这是很难猜中的。
2.系统对你输入的字符串不进行有效性检查。
问题解决和建议:
对输入的内容验证和"'"号的处理。
相关文章推荐
- ASP程序密码验证漏洞
- 人为漏洞的构造和程序密码验证机制的突破
- asp 实现网页密码验证的两个基本方法
- 密码验证合格程序
- 华为机试在线训练108题:密码验证合格程序
- 资料验证的asp.net程序
- Asp.Net Forms验证(自定义、角色提供程序、单点登录)
- ASP.NET 应用程序级 验证用户是否登录 一般处理程序
- 【华为机试】密码验证合格程序
- asp.net mvc 5 identity 2.0 注册时密码强度验证
- 漏洞挖掘 修改程序验证流程
- 看好你的门-验证机制被攻击(4)-密码修改、重置功能常见漏洞
- 20、密码验证合格程序
- ASP.NET(C#)后台安全登陆代码(防XSS攻击\万能密码漏洞)
- ASP.net验证控件详解和按钮点击事件后验证控件的执行顺序问题以及在确认密码框为空,CompareValidator认为是合法的问题的解决方案
- Asp.Net Forms验证(自定义、角色提供程序、单点登录)
- 在ASP中用程序控制弹出NTLM验证窗口
- 去除Fedora16系统程序密码验证
- Asp.Net Forms验证(自定义、角色提供程序、单点登录)
- 微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)