原理
万能密码利用的原理就是在后台登陆页面没有对用户输入的内容进行验证,此时程序所用用户输入的数据都合法的,所以这个时候无论是合法的管理员还是非法的入侵者所输入的数据都是被信任的,非法入侵者正是利用这一特点来进行非法登录的。
一个网络安全意识淡薄的网站,其登录功能的SQL语句大概是下面这个样子
select * from user where username='输入值1' and password='输入值2'
当我们在登录界面输入 【万能账号】比如 a’ or true # 以后,后端会将我们输入的参数拼接到SQL中,然后去数据库中查询账号和密码
拼接以后的SQL语句大概是下面这样:
select * from user where username='a' or true #' and password='pass'
#在SQL中是注释符,注释符后面的内容不起作用
所以后台得到的有效代码为:
select * from user where username='a' or true
注释符
除了 # 以外, – 也是SQL中的注释符,但SQL的语法格式规定–和后面的注释内容必须间隔一个空格,所以这需要使用 a’ or 1 – a 而不是 a’ or 1 --a 其原理和 a’ or 1 # 大同小异
常用
'=' '='
' or true #
' or 1=1#