Php mysql_查询函数上的SQL注入是否只能检索数据?
昨晚,一位潜在客户让我访问他的FTP,检查一个小型web软件,看我是否可以执行他想要的更改,我在代码中找到了以下行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--,但软件界面设计为只列出一个查询结果,这意味着我无法获得所
$query = mysql_query("SELECT * FROM request WHERE MD5(CONCAT(id, code)) = '{$_GET['r']}' LIMIT 1");
我读到mysql_查询不支持多查询,所以这就是为什么我不能删除我自己创建的一个测试表的原因
我确实使用了老把戏”或1=1--
,但软件界面设计为只列出一个查询结果,这意味着我无法获得所有数据。但在这个主题上,应用程序是一个处理请求的小型web软件
- 你得到一个链接
- 单击“立即付款”
- 你在另一个网站上还债
- 你回到网站
- 你会收到一封回执邮件
删除
或更新
(在发生损坏时更新)数据,以便我可以证明它实际上是不安全的?或者我们不得不承认,在这种情况下,软件是足够安全的
问题是,设计的目的是帮助我决定是否应该报告,解释客户端应该付钱给某人来修复所有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,效果如何