SQLMap介绍
SQLMap是一个自动化的SQL注入工具,主要功能是扫描、发现,并利用给定url(域名)的SQL注入漏洞。SQLMap支持的数据库有MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Firebird 、Sybase和SAPMaxDB 。
相对于手工注入,sqlmap的高效注入大大提高了我们渗透效率。Sqlmap采用了以下5种独特的SQL注入技术:
联合查询,在可以使用Union的情况下注入(注入效率最高,成本最低)
报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
布尔盲注,即可以根据返回页面判断条件真假的注入
延时注入,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断
堆叠查询,可以同时执行多条语句时的注入
SQLMap 的强大的功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令;当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会起到很不错的效果
SQLMap的简单使用方法
常用命令及参数
当发现sql注入的时候,根据我们注入的不同,对SQLMap使用的参数也不同
sqlmap -u 'URL' 检测注入点
sqlmap -u 'URL' --dbs 列出所有数据库的名字
sqlmap -u URL --is-dba 当前用户是否是数据库管理员
sqlmap -u URL --current-db 列出当前数据库的名字
-D 指定一个数据库
--tables 列出所有表名
sqlmap -u URL -D "xx" --tables 列出xx数据库中的所有表
-T 指定一个表
--columns 列出所有的字段名
sqlmap -u URL -D "xx" -T "cc" --columns 列出表中所有的字段名
-C 指定一个字段名
--dump 列出字段内容
sqlmap -u URL -D "xx" -T "cc" -C "x,x,.." --dump 列出字段内容(-T ,-C之类的要用大写不然有时候会读不出来)。未指定字段-dump则全部列出