功能 -支持的功能的简要列表-sqlmap用户手册-测试-IT技术博客

sqlmap中实现的功能包括:


 通用功能

  • 全面支持MySQLOracle PostgreSQL Microsoft SQL Server Microsoft AccessIBM DB2SQLite Firebird Sybase SAP MaxDBHSQLDB数据库管理系统。

  • 完全支持五种SQL注入技术: 基于布尔的盲注 , 基于时间的盲注 , 基于错误的 , UNION查询和堆叠查询

  • 通过提供DBMS凭据,IP地址,端口和数据库名称,支持直接连接到数据库而无需通过SQL注入。

  • 可以提供单个目标URL,从Burp代理或WebScarab代理请求日志文件获取目标列表,从文本文件获取整个HTTP请求,或者通过为sqlmap提供带有查询Google的Google dork的目录来获取目标列表搜索引擎并解析其结果页面。 您还可以定义基于正则表达式的范围,该范围用于标识要测试的解析地址。

  • 测试提供的GET参数, POST参数,HTTP Cookie头值,HTTP User-Agent头值和HTTP Referer头值,以识别和利用SQL注入漏洞。 还可以指定一个逗号分隔的特定参数列表进行测试。

  • 用于指定并发HTTP(S)请求(多线程)的最大数量的选项,以加快盲目SQL注入技术的速度。 反之亦然,也可以指定每个HTTP(S)请求之间保持的秒数。 还实施了其他优化开关以加快开发速度。

  • HTTP Cookie头字符串支持,当Web应用程序需要基于Cookie的身份验证并且您拥有此类数据时,或者在您仅想测试和利用此类头值上的SQL注入时,此功能非常有用。 您还可以指定始终对Cookie进行URL编码。

  • 自动处理来自应用程序的HTTP Set-Cookie标头 ,如果会话过期则重新建立会话。 也支持对这些值进行测试和利用。 反之亦然,您也可以强制忽略任何Set-Cookie标头。

  • HTTP协议支持基本,摘要,NTLM和证书身份验证 。

  • HTTP(S)代理支持,将请求传递到目标应用程序,该目标应用程序也可与HTTPS请求和经过身份验证的代理服务器一起使用。

  • 伪造由用户指定或从文本文件中随机选择的HTTP Referer标头值和HTTP User-Agent标头值的选项。

  • 支持提高输出消息的详细级别 :存在七个详细级别。

  • 支持从目标URL 解析HTML表单 ,并针对这些页面伪造HTTP(S)请求,以针对漏洞测试表单参数。

  • 在用户的开关和功能方面都具有粒度和灵活性 。

  • 实时更新每个查询的估计到达时间支持,以向用户提供检索查询输出将花费多长时间的概述。

  • 在获取数据的同时,自动实时地将会话(查询和它们的输出,即使部分检索出来)保存在文本文件中,并通过解析会话文件恢复注入 。

  • 支持从配置INI文件读取选项,而不是每次在命令行上指定所有开关时都支持。 还支持根据提供的命令行开关生成配置文件。

  • 支持在本地SQLite 3数据库上复制后端数据库表结构和条目 。

  • 从Subversion存储库中将sqlmap更新到最新开发版本的选项。

  • 支持解析HTTP(S)响应并向用户显示任何DBMS错误消息。

  • 与其他IT安全开源项目Metasploit和w3af集成 。

 

指纹和枚举功能


  • 广泛的后端数据库软件版本和基于错误消息 , 标语解析 , 功能输出比较以及MySQL注释注入等特定功能的 底层操作系统指纹 。 如果您已经知道后端数据库管理系统的名称,也可以强制使用它。

  • 基本的Web服务器软件和Web应用程序技术指纹。

  • 支持检索DBMS 标语 , 会话用户和当前数据库信息。 该工具还可以检查会话用户是否是数据库管理员 (DBA)。

  • 支持枚举用户,密码哈希,特权,角色,数据库,表和列 。

  • 自动识别密码哈希格式,并支持通过基于字典的攻击将其破解 。

  • 支持暴力破解表和列name 。 当会话用户对包含模式信息的系统表没有读访问权限,或者数据库管理系统不在任何地方存储此信息时(例如,MySQL <5.0),此功能很有用。

  • 支持根据用户的选择完全转储数据库表 ,一系列条目或特定列。 用户还可以选择仅转储每列条目中的一部分字符。

  • 支持自动转储所有数据库的模式和条目。 可能要从转储中排除系统数据库。

  • 支持搜索特定数据库名称,所有数据库中的特定表或所有数据库表中的特定列 。 例如,这对于识别包含自定义应用程序凭据的表很有用,其中相关列的名称包含诸如name和pass之类的字符串。

  • 支持在连接到后端数据库的交互式SQL客户端中运行自定义SQL语句 。 sqlmap自动分析提供的语句,确定哪种技术最适合注入该语句以及如何相应地打包SQL有效负载。

 

接管功能


其中的一些技术在白皮书“ 高级SQL注入到操作系统的完全控制”和幻灯片中进行了详细介绍,并从数据库扩展了对操作系统的控制 。


  • 支持注入自定义用户定义函数 :用户可以编译共享库,然后使用sqlmap在后端DBMS用户定义函数中从已编译的共享库文件中创建。 然后可以通过sqlmap执行这些UDF,并可以选择将其删除。 当数据库软件是MySQL或PostgreSQL时,将支持此功能。

  • 当数据库软件是MySQL,PostgreSQL或Microsoft SQL Server时,支持从数据库服务器基础文件系统下载和上传任何文件 。

  • 当数据库软件为MySQL,PostgreSQL或Microsoft SQL Server时,支持在数据库操作系统底层操作系统上执行任意命令并检索其标准输出 。

  • 在MySQL和PostgreSQL上,通过用户定义的函数注入和执行。

  • 在Microsoft SQL Server上通过xp_cmdshell()存储过程。 同样,如果禁用了存储过程,则重新启用该存储过程;如果被DBA删除,则从头开始创建该存储过程。

  • 支持在攻击者机器与底层操作系统的数据库服务器之间建立带外状态TCP连接 。 根据用户的选择,此通道可以是交互式命令提示符,Meterpreter会话或图形用户界面(VNC)会话。 sqlmap依靠Metasploit创建shellcode,并实现四种不同的技术来在数据库服务器上执行它。 这些技术是:

  • 通过sqlmap自己的用户定义函数sys_bineval() 在Metasploit的shellcode的数据库内存中执行 。 在MySQL和PostgreSQL上受支持。

  • 通过mysql和PostgreSQL上的sqlmap自己的用户定义函数sys_exec()或通过Microsoft SQL Server上的xp_cmdshell()上载和执行Metasploit的独立有效负载暂存器。

  • 通过执行SMB反射攻击 ( MS08-068 ,从数据库服务器到攻击者的计算机,通过Metasploit smb_relay服务器利用程序侦听的攻击者的计算机)进行Metasploit的Shellcode的执行。在Linux /上以高特权( uid=0 )运行sqlmap时受支持Unix和目标DBMS在Windows上以管理员身份运行。

  • 通过利用Microsoft SQL Server 2000和2005 sp_replwritetovarbin存储过程基于堆的缓冲区溢出 ( MS09-004 ),对Metasploit的shellcode进行数据库内存执行。 sqlmap有其自身的利用漏洞,可以通过自动DEP内存保护绕过来触发该漏洞,但是它依赖于Metasploit生成外壳代码,以便在成功利用该漏洞后执行。

  • 通过Metasploit的getsystem命令支持数据库进程的用户特权升级 ,其中包括kitrap0d技术( MS10-015 )。

  • 支持访问(读取/添加/删除)Windows注册表配置单元。


 演示版


您可以在Bernardo和Miroslav YouTube页面上观看演示视频。 此外,您还可以在此处找到许多针对公开的易受攻击的Web应用程序的示例,这些应用程序是为进行合法Web评估而制作的。


标签: sqlmap教程sqlmapsqlmap手册