原理
万能密码利用的原理就是在后台登陆页面没有对用户输入的内容进行验证,此时程序所用用户输入的数据都合法的,所以这个时候无论是合法的管理员还是非法的入侵者所输入的数据都是被信任的,非法入侵者正是利用这一特点来进行非法登录的。
一个网络安全意识淡薄的网站,其登录功能的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#
理解SQL注入:万能密码的原理与防范
文章介绍了SQL注入攻击的一种常见形式,即利用万能密码绕过登录验证。这种攻击方式基于网站未对用户输入进行有效验证,允许恶意输入如`ortrue#`或`or1=1#`来绕过密码检查。注释符在SQL中起到忽略后续内容的作用,使得攻击者可以构造出使查询始终返回真值的语句,从而实现非法登录。提高网络安全意识和加强输入验证是防止此类攻击的关键。
3366

被折叠的 条评论
为什么被折叠?



