首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL注入漏洞的证明

SQL注入漏洞的证明
EN

Security用户
提问于 2015-02-04 13:02:44
回答 1查看 535关注 0票数 4

我最近遇到了一个严重的缺陷,我认为,在安全的第三方计算机程序使用在我的公司。抱歉故意让细节含糊不清,但我希望你能理解!

当将条目输入数据库时,不能在name字段中输入一个撇号--用户通常会使用''。因此,当我试图解析这个程序运行的导出的CSV输出时,当分隔值破坏了我所使用的解析器时,我发现了这个问题。

我与负责这个第三方软件的支持小组进行了交谈,询问这是否是避免SQL注入的尝试,后者证实这样做的原因是“避免SQL中的问题”。虽然这是一个内部使用的系统,但我不禁觉得

  1. 这是可怕的编码实践--仅仅使用预先准备好的语句就可以立即解决这个问题(并且允许CSV导出中的单个撇号,并因此防止大量的黑客-y解决方案)。
  2. 必须有某种方式可以任意执行SQL,而无需使用“自行执行”。也就是说,'''''很好,只是'不行。

我一发现它就向经理提出了这个问题(并跳到了SQL注入的结论),但在我真正开始升级之前,我想确认一下,这是我认为的安全漏洞(除了糟糕的编码实践之外)。

如果有人能证实我的怀疑是很好的,如果你能想出一个不使用孤立'的恶意SQL代码的例子,我会非常感激的。

EN

回答 1

Security用户

回答已采纳

发布于 2015-02-04 13:29:33

我假设数据是由某种前端输入的,其中包含一个字段列表?

为了便于论证,我将假设4个字段。在第一个字段中,这样做:

''',(SELECT @@version), (SELECT @@version), (SELECT @@version))--

在其他字段中,放置您想要的任何内容,因为它们无论如何都会被双破折号注释掉。这将在数据的第二列中将服务器版本返回给您。

编辑补充:你可能需要一个空格和另一个破折号在末尾。(所以-- -)

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/80863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档