首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP + Oracle -如何执行SQL注入?

PHP + Oracle -如何执行SQL注入?
EN

Stack Overflow用户
提问于 2012-11-15 11:39:44
回答 2查看 1.5K关注 0票数 0

就在最近,我们的客户端通过渗透测试公司对他们的站点进行了测试,并在报告中指出,在某些字段上,可以执行SQL注入。它们只声明DB服务器版本和找到的几个表。

我试图在该字段上执行SQL注入,但无法得到相关的结果。该字段上的SQL注入存在的问题是:

  • 字段是由模糊的AJAX验证的。
  • 字段有一个JS验证,并且输入只能是一个数字(任何其他字符都被去掉)
  • 该字段的AJAX验证询问使用SQL的DB在返回1(如果是)时是否可以找到该值(简单的SELECT 1 FROM table WHERE column = '{$value}')。
  • 然后,验证方法返回true或错误消息,并以JSON格式返回给表单

由于所有这些原因,我不知道如何执行SQL注入来返回一些数据.我知道我可以做一个插入、更新、删除查询,所以确实有注入,但是如何使用这个字段及其验证方法从select查询中检索一些数据呢?

嘿,伙计们!我不是在问“有任何SQL注入吗?”或者“SQL注入是一件坏事吗?”----我知道有SQL注入,我知道这是非常糟糕的,但是我的问题是,当您知道上面的条件时,如何执行注入来检索任何数据……

下面的评论是没用的..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-15 12:20:57

一旦发现漏洞,设计一种完全控制DB的方法可能需要时间,特别是如果攻击方不得不欺骗/重写客户端代码以与易受攻击的服务器端验证兼容。这也可能不是安全任务的一部分:它的实际目标是查找漏洞,而不是利用漏洞。

因此,在这里花费资源是毫无意义的,主要是您有一个漏洞,您必须纠正它。即使安全团队无法利用它,它也不能证明什么:--一个更有经验和/或动机更强的不法分子团队--肯定可以利用它,。特别是,有一些工具一旦发现SQL注入漏洞,就会自动化利用它的过程。

不要花太多时间试图理解客户端更改的子实用程序:最重要的部分是健壮的服务器端验证。

也可以用准备好的语句,解决问题。

票数 2
EN

Stack Overflow用户

发布于 2012-11-15 11:50:36

很明显:

  1. 您没有使用OCI8 PHP扩展提供的准备语句特性(否则,您将使用column = :value而不是column = '{$value}')。
  2. 您的验证是客户端的,因此很容易被覆盖。

因此,do存在一个SQL漏洞。这并不意味着我们一定可以盗取你的密码或信用卡号码。最小的效果是用户提供的参数会使你的应用程序崩溃,这已经够糟糕的了。

对于这种注入的确切潜力,很难说,甚至不知道应用程序做什么。通常的可能性包括:

  • 检索你不应该看到的行
  • 注入数据操作语句

更新:

没有看到PHP代码所做的事情:

代码语言:javascript
运行
复制
$value = "' UNION ALL SELECT credit_card FROM billing_info -- ";
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13396795

复制
相关文章

相似问题

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