- 后端代码包含的sql语句"select userid from cms_users where username = ‘“.$username.”’ and password=‘".md5 (
p
a
s
s
w
o
r
d
)
.
"
′
"
去掉双引号
"
"
及点
.
,其为
p
h
p
语法,即
s
e
l
e
c
t
u
s
e
r
i
d
f
r
o
m
c
m
s
u
s
e
r
s
w
h
e
r
e
u
s
e
r
n
a
m
e
=
′
password ) ."'" 去掉双引号""及点. ,其为php语法,即 select userid from cms_users where username = '
password)."′"去掉双引号""及点.,其为php语法,即selectuseridfromcmsuserswhereusername=′username’ and password=‘md5 (
p
a
s
s
w
o
r
d
)
′
其中
password ) ' 其中
password)′其中username和$password为前端输入部分,我们可以通过构造输入特殊的语句,使其不破坏sql语句的基本语法,并达到执行我们想要的结果的语句,例如输入
username:11’ or ‘1’='1
password:123
则语句变成
select userid from cms_users where username = ‘11’ or ‘1’=‘1’ and password='md5 ( 123 ) ’
根据sql语句运算法则,先算and再算or,可得这条语句永为true
也可输入
username:11’ or 1=1 #
password:123
即
select userid from cms_users where username = ‘11’ or 1=1 #’ and password='md5 ( 123 ) ’
#为注释符号,只需运算or,为真。
万能用户名(密码)原理分析
最新推荐文章于 2024-02-21 17:40:47 发布