| 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"令语句返回为真值. 解决方案: 由漏洞的发现者提供的解决方法: 比较好的应该按照以下方式: |
| 出处:CnCode转载收集 作者:不详 |