我最近遇到了一个严重的缺陷,我认为,在安全的第三方计算机程序使用在我的公司。抱歉故意让细节含糊不清,但我希望你能理解!
当将条目输入数据库时,不能在name字段中输入一个撇号--用户通常会使用''。因此,当我试图解析这个程序运行的导出的CSV输出时,当分隔值破坏了我所使用的解析器时,我发现了这个问题。
我与负责这个第三方软件的支持小组进行了交谈,询问这是否是避免SQL注入的尝试,后者证实这样做的原因是“避免SQL中的问题”。虽然这是一个内部使用的系统,但我不禁觉得
''或'''很好,只是'不行。我一发现它就向经理提出了这个问题(并跳到了SQL注入的结论),但在我真正开始升级之前,我想确认一下,这是我认为的安全漏洞(除了糟糕的编码实践之外)。
如果有人能证实我的怀疑是很好的,如果你能想出一个不使用孤立'的恶意SQL代码的例子,我会非常感激的。
发布于 2015-02-04 13:29:33
我假设数据是由某种前端输入的,其中包含一个字段列表?
为了便于论证,我将假设4个字段。在第一个字段中,这样做:
''',(SELECT @@version), (SELECT @@version), (SELECT @@version))--
在其他字段中,放置您想要的任何内容,因为它们无论如何都会被双破折号注释掉。这将在数据的第二列中将服务器版本返回给您。
编辑补充:你可能需要一个空格和另一个破折号在末尾。(所以-- -)
https://security.stackexchange.com/questions/80863
复制相似问题