首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL注入引号()?

SQL注入引号()?
EN

Stack Overflow用户
提问于 2012-03-05 01:15:26
回答 2查看 3.3K关注 0票数 0

注意:这是一个在虚拟机中有一个虚拟站点的项目.这是我正在做的一个高级大学项目。我不是想利用一个真实的,真实的网站。这是为了教育目的,了解这样的功绩是多么强大,即使在给定的功能。

我目前正在从事一个项目(在一个安全和受控的环境下,在VM中),该项目涉及到利用网站的漏洞。其中一部分涉及利用SQL语句。目标是能够输入用户名和不正确的密码,但仍然能够登录。我已经在这方面工作了几个小时,没有这样的运气,我已经做了相当多的研究,看看哪些漏洞是可用的。

当一个人提交他们的用户名和密码(在本例中,它可以是任何内容)时,函数将使用以下准备好的SQL语句运行:

代码语言:javascript
复制
$query = "SELECT Salt FROM Accounts WHERE Username = '$quoted'";

其中$quoted是:

代码语言:javascript
复制
$quoted = $this->db->quote($user);

这实际上为所提供的每一个单引号/双引号增加了一个额外的单引号/双引号。尽管尝试了其他可能性(如' OR 1=1'等),但我想出的最接近的事情是:

代码语言:javascript
复制
SELECT Salt FROM Accounts WHERE Username = '\'' OR 1=1 -- '

$user变量最初为\' OR 1=1 --。第一个和最后一个引号是通过()函数自动添加的,以及转义单引号之后的附加引号。然而,这似乎不是适当的SQL语法,可能是因为它将整个$user输入解释为用户名。

在这个语句之后还有另一个准备好的语句,但是它依赖于与salt连接的密码的md5散列,而且我认为在md5返回哈希之后,没有任何方法可以在语句中注入任何内容。出于好奇,声明如下:

代码语言:javascript
复制
$query = "SELECT * FROM Accounts WHERE Username = '$user' AND Password = '$hash';

$hash = md5($pass.$salt)

有人想弄清楚什么可能性吗?也许我真的忽略了它,但我觉得我已经试过了所有的东西。

编辑:我解决了这个问题。它与利用注入的另一个功能有关。它最终添加了一个用户名和注入代码(二阶注入),然后它将进行登录。登录过程引用第一个查询的用户名,但第二个查询没有;因此,用户将自动登录。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-05 01:41:50

SQL中的反斜杠是一个令人烦恼的主题,它依赖于正在使用的DBMS。

标准SQL没有赋予它们任何意义。若要在字符串中转义引号,请将引号加倍。您使用的quote方法似乎遵循了这一原则:

\' OR 1=1 --

  • Output:'\'' OR 1=1 --'

输入:

有些DBMS可能实际上定义了反斜杠的含义。然而,更复杂的是,您通常有数量不定的中介语言(PHP、ODBC等),这些语言也可能修改字符串,并可能将意义应用于纯SQL所不具备的反斜杠。

如果键入X' OR 1=1 --,(用X代替反斜杠),您将得到相同的映射字符串,反斜杠由X代替。因此,如果攻击要工作,则需要quote()方法来混淆数据库管理系统将如何处理反斜杠,但这相当于quote()方法中的一个错误。

如果您成功地嵌入了Unicode转义序列,您可能会得到更多的支持。例如,U+0027 (十进制39)是单引号。这种诡计可能会让你通过quote(),但它可能不会。quote()-like方法背后的想法是,你不应该在它们之前扭曲文本,这意味着除了预期之外的其他东西。对于字符的非最小UTF-8编码可能会因为服务器中的错误而触发问题,但这并不完全可能。Unicode标准很清楚,不应该接受无效的UTF-8编码--这在安全信息附近的任何地方都是双重的。

您说得对,包含在引号中的散列的输出将无法有效地注入,特别是当攻击者从未看到盐分时。

票数 2
EN

Stack Overflow用户

发布于 2022-01-03 08:16:42

‘或1=1限制1--从tsdf选择* sdf=’

要对付最后一个引号,只需添加一个SELECT查询,以使语句有效。它将不会有任何效果,因为

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

https://stackoverflow.com/questions/9560520

复制
相关文章

相似问题

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