Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql_查询函数上的SQL注入是否只能检索数据?_Php_Mysql_Sql Injection - Fatal编程技术网

Php mysql_查询函数上的SQL注入是否只能检索数据?

Php mysql_查询函数上的SQL注入是否只能检索数据?,php,mysql,sql-injection,Php,Mysql,Sql Injection,昨晚,一位潜在客户让我访问他的FTP,检查一个小型web软件,看我是否可以执行他想要的更改,我在代码中找到了以下行 $query = mysql_query("SELECT * FROM request WHERE MD5(CONCAT(id, code)) = '{$_GET['r']}' LIMIT 1"); 我读到mysql_查询不支持多查询,所以这就是为什么我不能删除我自己创建的一个测试表的原因 我确实使用了老把戏”或1=1--,但软件界面设计为只列出一个查询结果,这意味着我无法获得所

昨晚,一位潜在客户让我访问他的FTP,检查一个小型web软件,看我是否可以执行他想要的更改,我在代码中找到了以下行

$query = mysql_query("SELECT * FROM request WHERE MD5(CONCAT(id, code)) = '{$_GET['r']}' LIMIT 1");
我读到mysql_查询不支持多查询,所以这就是为什么我不能删除我自己创建的一个测试表的原因

我确实使用了老把戏
”或1=1--
,但软件界面设计为只列出一个查询结果,这意味着我无法获得所有数据。但在这个主题上,应用程序是一个处理请求的小型web软件

  • 你得到一个链接
  • 单击“立即付款”
  • 你在另一个网站上还债
  • 你回到网站
  • 你会收到一封回执邮件
应用程序不保存敏感度数据,因为你不愿意支付他们的账单,你也无能为力,所以你是否可以找到并加载其他人的请求也无关紧要。没有密码,没有信用卡,什么都没有。你不能从数据库中窃取任何东西

问题是 在这种情况下,我是否有任何证据支持将数据直接输入SQL是不安全的?是否有任何方法可以使用SQL注入
删除
更新
(在发生损坏时更新)数据,以便我可以证明它实际上是不安全的?或者我们不得不承认,在这种情况下,软件是足够安全的

问题是,设计的目的是帮助我决定是否应该报告,解释客户端应该付钱给某人来修复所有SQL注入漏洞。但如果它没有坏,他就不会付钱修理它,显然我无法证明它坏了

编辑1:
在回复@James的评论时,网站不会处理你所有的账单,只会处理你与特定客户的账单。为了便于讨论,我们可以安全地假设,没有人会只为修复
选择
漏洞而付费,因为事实上,您不会发现他们的任何客户担心他们的账单会流出。

您可以改变查询的结构和意义;您可以从中添加或删除条件等,并通常使其以作者不希望的方式运行无论您如何看待它,这都是一个安全问题。您可能无法找到针对它的临时漏洞,但它可以以某种方式帮助某人,而目前没有人预料到这一点。例如,它可以用来探测数据库中是否存在数据或表和列。仅此一点就可以为攻击者提供更多信息,以便在其他地方制定更具体的攻击。

您可以更改查询的结构和含义;您可以从中添加或删除条件等,并通常使其以作者不希望的方式运行无论您如何看待它,这都是一个安全问题。您可能无法找到针对它的临时漏洞,但它可以以某种方式帮助某人,而目前没有人预料到这一点。例如,它可以用来探测数据库中是否存在数据或表和列。仅此一点就可以为攻击者提供更多信息,以便在其他地方发起更具体的攻击。

这是一种安全风险

比如说,

$_GET['r'] = "1 AND code LIKE '%_[^!_%/%a?F%_D)_(F%)_%([)({}%){()}£$&N%_)$*£()$*R"_)][%](%[x])%a][$*"£$-9]_%'";
我们有一个

SQL通配符攻击是通过使用多个通配符强制底层数据库执行CPU密集型查询。此漏洞通常存在于web应用程序的搜索功能中。成功利用此攻击将导致拒绝服务


除此之外,攻击者还可以操纵
$\u GET['r']
来了解有关您的数据库的更多信息,例如其他表、列甚至数据库,这本身就是一个巨大的安全漏洞。

这是一个安全风险

比如说,

$_GET['r'] = "1 AND code LIKE '%_[^!_%/%a?F%_D)_(F%)_%([)({}%){()}£$&N%_)$*£()$*R"_)][%](%[x])%a][$*"£$-9]_%'";
我们有一个

SQL通配符攻击是通过使用多个通配符强制底层数据库执行CPU密集型查询。此漏洞通常存在于web应用程序的搜索功能中。成功利用此攻击将导致拒绝服务


除此之外,攻击者还可以操纵
$\u GET['r']
来了解有关您的数据库的更多信息,例如其他表、列甚至数据库,这本身就是一个巨大的安全漏洞。

“因为您不愿意支付他们的账单,所以您是否能够找到并加载其他人的请求并不重要。”你不认为别人的债务或账单是“敏感”的数据吗?你会很高兴你的债务/账单信息公开吗?如果注入的性能超过并劫持了CPU,实际上是DOS攻击。这是2015年。准备你的陈述。TBH我不在乎它是什么账单或信息——我是否想让别人知道我的信息不是由你决定的。(显然不包括在推特上发帖等明显的公共数据)@MarcoAurélioDeleu该计划还有其他切入点吗?您告诉我们有关数据检索的信息,但是当访问者返回时,他们是否携带更新信息以表明账单已支付?支付网关是否直接执行此操作(即静默发布)?或者是否有任何其他入口点(是否面向访客)可以访问以执行任何级别的删除更新?如果是这样的话,那么通过这些向量就能发现这些弱点的能力,他们也可以通过另一个工具进行开发。“如果你不愿意支付别人的账单,因为你不愿意付账”,你就不会把别人的债务或账单当作“敏感”的数据了吗?你会很高兴你的债务/账单信息公开吗?如果一个注入的性能过高并劫持了CPU,效果如何