万能密码

网站的用户进行用户名和密码验证时,网站会查询数据库进行对比。(用的SQL语句)



比如某某网站,当用户登录时,后台的查询SQL语句是Select user_id,user_type,email From users Where user_id=’用户名’ And password=’密码

有些网站对单引号没有过滤,当输入用户名【admin】和万能密码【2’or’1】时,执行的SQL语句为【Select user_id,user_type,email From users Where user_id=’admin’ And password=’2’or’1’】。同时,由于SQL语句中逻辑运算符具有优先级,【=】优先于【and】,【and】优先于【or】,且适用传递性。因此,此SQL语句在后台解析时,分成两句【Select user_id,user_type,email From users Where user_id=’admin’ And password=’2’】和【’1’】,两句bool值进行逻辑or运算,恒为TRUE。SQL语句的查询结果为TRUE,就意味着认证成功,也可以登录到系统中。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容