gpt4 book ai didi

php - 通过我不太了解的 mysql 查询破坏了安全性

转载 作者:可可西里 更新时间:2023-11-01 07:58:28 25 4
gpt4 key购买 nike

我一直在处理遗留网站。最近,一位用户向我们报告了一个潜在的安全漏洞。

长话短说,当尝试登录并使用 '=' 'or' 作为密码或用户名时,将执行以下查询。

SELECT * FROM `table-goes-here` WHERE `username` = ''=' 'or'' AND `password` = 'some-hash-goes-here'

此查询将选择该表中的所有内容,并允许在没有任何实际有效凭据的情况下登录。

我只是维护网站,之前我已经和所有者谈过此类安全漏洞,他不听。


我想知道的是,这究竟是一个有效的查询,以及它究竟做了什么(最好是一步一步地向我解释,就像我是 5 版本一样)。我的 MySQL 知识并不是最好的。


我很清楚这是一个 SQL 注入(inject)。我知道如何准备语句,但显然不在预算之内。我只想知道它到底做了什么。即这部分。我以前从未见过这种语法,谷歌搜索并没有真正帮助,因为我不知道我在寻找什么。

`username` = ''=' 'or''

最佳答案

事情是你实际上在运行

SELECT * FROM table WHERE (username= '' = '') or ('' AND password="");

并且 (user_username = '' = '') 计算结果为真...尝试

SELECT  (username= '' = '') FROM table;

and ('' AND password="") 的计算结果也为真...尝试

Select ('' AND password="") FROM table;

也评估为 true 所以...显示所有内容

关于php - 通过我不太了解的 mysql 查询破坏了安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33083197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com