Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

admin 2022年10月15日23:16:07评论89 views字数 3519阅读11分43秒阅读模式

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt、


Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

记红色的部分为今日更新内容。

6.0、介绍

6.1、寻找文件包含漏洞

6.2、文件包含和文件上传

6.3、手工验证SQL注入

6.4、基于错误的SQL注入

6.5、确认并利用SQL盲注漏洞

6.6、使用SQLMap查找和利用SQL注入

6.7、利用XML外部实体注入

6.8、检测和利用命令注入漏洞




6.6、使用SQLMap查找和利用SQL注入 

正如前面的小节所示,开发SQL是一个非常辛苦的过程。SQLMap是Kali Linux中包含的命令行工具,它可以帮助我们使用多种技术对各种数据库自动检测和利用SQL注入。

在这小节中,我们将使用SQLMap来检测和利用SQL漏洞,并获取应用程序的用户名和密码。


 

实战演练

浏览http://192.168.56.11/mutillidae,进入OWASP Top10 | A1 – SQL injection | SQLi Extract Data| User Info:

1.  尝试任何用户名和密码,例如user和password,然后单击View Account Details。

2.   登录将失败,但我们对URL感兴趣。转到地址栏,将完整的URL复制到剪贴板。应该是这样的:
http://192.168.56.11/mutillidae/index.php?page=user-info.php&username=user&password=password&user-info-php-submit-button=View+Account+Details

3.  现在,在终端窗口中,输入以下命令:

sqlmap -u "http://192.168.56.11/mutillidae/index.php?page=user-info.php&username=user&password=password--curent-user --current-db --is-dba

可以看到-u参数的值是复制的URL。使用-p,我们告诉SQLMap,我们希望在用户名参数中查找SQLi,一旦漏洞被利用,我们希望它检索当前数据库用户名和数据库名称,并知道该用户在数据库中是否具有管理权限。检索这些信息是因为我们只想知道用户名参数中的URL中是否有SQLi。下面的截图显示了这个命令以及SQLMap如何表示执行:

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入


4.  一旦SQLMap检测到应用程序使用的DBMS,它还会询问我们是否要跳过对其他DBMS的测试,是否要包含对所检测的特定系统的所有测试,即使它们超出了当前级别和配置风险的范围。在这种情况下,我们回答Yes以跳过其他系统,而回答No以则进行所有测试。

5.  一旦我们指定的参数被发现是存在sql注入的,SQLMap将询问我们是否需要测试其他参数。我们对这个问题的回答是No的,然后我们会看到结果:

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入


6.  如果我们想要获得用户名和密码,就像我们在前面的小节中所做的那样,我们需要知道具有这些信息的表的名称。在终端执行以下命令:

sqlmap -u"http://192.168.56.11/mutillidae/index.php?page=user-info.php&username=test&password=test-D nowasp --tables

SQLMap保存了它执行的注入的日志,因此第二次攻击将比第一次攻击花费更少的时间。如您所见,攻击返回我们指定的数据库中的表列表:

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入


7.  Account表看起来像是拥有我们想要的信息。让我们查看的他的字段信息:

sqlmap -u"http://192.168.56.11/mutillidae/index.php?page=user-info.php&username=test&password=test-D nowasp -T account --dump

我们现在有了完整的用户表,在这种情况下,我们可以看到密码没有加密,所以我们可以直接使用密码进行登录:

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入


8.  SQLMap还可以用于在数据库和操作系统中提权。例如,如果数据库用户是管理员权限,我们可以使用--users 和 --password选项提取所有数据库用户的用户名和密码散列,如下图所示:

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

通常,这些也是操作系统用户,并将允许我们提升到操作系统权限或者可以登录其他网络主机。

9.  我们还可以得到一个shell,它允许我们直接向数据库发送SQL查询,如下所示:

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入



原理剖析

SQLMap使用SQLi字符串测试给定URL和数据中的所有输入参数,或者只测试-p选项中的指定输入参数,并解释响应以发现是否存在漏洞。不过最好不要模糊测试所有输入参数; 有哪位寻找所有可能性的注入可能会花费大量时间,并在网络中产生非常可疑的流量。一般使用SQLMap来利用我们已经知道存在的注入,并且试图缩小搜索过程。可以向它提供更多可用的信息,例如存在sql注入的参数、DBMS类型和其他信息。 

在这个小节中,我们已经知道用户名参数容易受到SQL注入的攻击(因为我们使用了mutillidae的SQL注入测试页面)。在第一次攻击中,我们只想确定那里有一个注入,并要求提供一些非常基本的信息:用户名(—curant -user)、数据库名(—current-db)以及用户是否是管理员(—is-dba)。

在第二次攻击中,我们指定了要使用-D选项查询的数据库,以及从上次攻击中获得的名称,并要求提供它包含的表列表。知道我们想要得到什么表(-T account),我们告诉SQLMap用——dump读取它的内容。

因为从应用程序查询数据库的用户是DBA,所以它允许我们向数据库询问其他用户的信息,而SQLMap使用-- user和-password选项使我们的工作更加轻松。这些选项要求用户名和密码,因为所有的dbms都对用户的密码进行了加密,而我们得到的是散列,所以我们仍然需要使用密码破解程序来破解它们。如果SQLMap请求执行字典攻击时您回答了Yes,那么现在您就可能知道一些用户的密码。

我们还使用--sql-shell选项获取一个shell,从这个shell可以向数据库发送SQL查询。当然,这不是一个真正的shell,只是SQLMap通过SQLi发送我们编写的命令并返回这些查询的结果。

译者注:

一般一个完整字母前面是两个杠(--),单个字母前面是一个杠(-)。

 

更多资料 

SQLMap还可以在POST请求中注入输入变量。要做到这一点,我们只需要添加—data选项,后面跟着引号中的POST数据,例如:—data“username=test&password=test”。 

有时,为了访问应用程序存在sql注入的URL,我们需要在应用程序中进行身份验证。如果发生这种情况,我们可以使--cookie选项:--cookie“PHPSESSID=ckleiuvrv60fs012hlj72eeh37”将有效的会话cookie传递给SQLMap。这对于测试cookie值中的注入也很有用。

这个工具的另一个有趣的特性是,除了它可以为我们带来一个SQL shell,在其中我们可以发出SQL查询之外,更有趣的是,我们还可以使用os-shell在数据库服务器中获得命令执行(这在注入Microsoft SQL server时特别有用)。要查看SQLMap的所有选项和特性,可以运行SQLMa –help。


 

另请参阅 

Kali Linux还包括其他一些工具,它们能够检测和利用SQL注入漏洞,这些工具可能对使用SQLMap或与SQLMap联合使用时很有用:

  • Sqlninja:一个非常流行的工具,专门用于MS SQL Server的开发。

  • Bbqsql:用Python编写的盲SQLi框架。

  • Jsql:具有完全自动化GUI的基于java的开发工具;我们只需要引入URL并单击一个按钮。

  • Metasploit:包括用于不同dbms的各种SQL注入模块。


赞赏老哥一瓶大可乐+大鸡腿吧!

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入


Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入


Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入


--------------------------------------------------------------------

Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

更多精彩内容,关注玄魂工作室

Kali Linux Web渗透测试手册(第二版) - 6.5 - 确认并利用SQL盲注漏洞

Kali Linux Web渗透测试手册(第二版) - 6.4 - 基于错误的SQL注入

星球日报20190106--全新CTF教程即将上线

渗透测试入门指南与路线规划

原文始发于微信公众号(玄魂工作室):Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月15日23:16:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Kali Linux Web渗透测试手册(第二版) - 6.6 - 使用SQLMap查找和利用SQL注入http://cn-sec.com/archives/782513.html

发表评论

匿名网友 填写信息