sqlmap的使用

sqlmap的使用

sqlmap需要python环境,直接百度搜索python选择对应的系统进行安装即可,教程很多

sqlmap可以直接百度sqlmap在官网进行下载,或者在github上进行下载
sqlmap在github上的下载地址

下载完成后,可以直接在安装sqlmap的路径下打开终端
使用命令python sqlmap.py --help查看sqlmap的帮助,里面有各种命令的说明

在这里插入图片描述
命令说明:
1.-h或者--help 查看帮助

2.--version 查看版本

3.-v 显示详细信息。有6个等级
等级0:只显示python的错误和一些严重的信息;
等级1:显示基本的一些信息(默认选项);
等级2:显示debug信息;
等级3:显示注入过程的payload;
等级4:显示http请求包;
等级5:显示http响应头;
等级6:显示http响应页面。

4.-d 直接连接后台数据库(不是使用sql注入漏洞),前提是要有用户名和密码

5.-u 最常用的,指定一个url地址,对其进行sql注入漏洞检测,地址中必须有?xxx=xxx
eg:使用sqli-labs-master靶场进行尝试

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1"

在这里插入图片描述
直接跑出了4个sql注入漏洞:1.布尔盲注;2.报错注入;3.时间盲注;4.联合查询 ,并且给每个注入漏洞都提供了payload进行使用

6.--dbs 配合-u进行使用,用于获取数据库信息

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" --dbs

在这里插入图片描述
7.-l 后面跟一个log文件(日志文件,可以使用burpsuite或者wireshark等工具产生的文件),基于log文件中所有的记录进行扫描

8.-m 后面跟一个txt文件,文件中可以包含多个url地址,进行批量扫描
在这里插入图片描述

python sqlmap.py -m url.txt

在这里插入图片描述
读取到第一个url及其可能存在的sql注入漏洞
在这里插入图片描述
在这里插入图片描述

读取到第二个url及其可能存在的sql注入漏洞
在这里插入图片描述
在这里插入图片描述

读取到第三个url及其可能存在的sql注入漏洞

9.-r 检测post请求是否存在注入,方法:使用抓包工具(如:burpsuite)将post请求数据包抓取,然后保存至文档中,使用-r 保存的文档路径

拿sqli-labs-master第20关做演示
在这里插入图片描述
抓取到页面提交的数据
然后将其复制保存为txt文档
在这里插入图片描述
使用命令:

python sqlmap.py -r 1.txt

在这里插入图片描述
就可以开始扫描了

以上的4 5 7 8 9就属于sqlmap参数中(上面通过–help查看的信息)Target类

Request类:
10.--method=GET/POST 指定请求方法,GET或者POST

11.--data 指定请求的参数
例如随便百度一下
在这里插入图片描述
会生成url:https://www.baidu.com/s?wd=312&rsv_spt=1&rsv_iqid=0xd86b3f7f0000ec45&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=98010089_dg&ch=2&rsv_enter=1&rsv_dl=tb&rsv_sug3=4&rsv_sug1=2&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&prefixsug=%2526lt%253B12&rsp=4&inputT=705&rsv_sug4=1115
里面有各种各样的参数,可以使用–data参数指定要检测的注入点
eg:–data=“wd=312” ,只检测一个参数
–data="rsv_spt=1&rsv_iqid=0xd86b3f7f0000ec45"检测2个参数

12.--param_del 指定变量的分隔符 比如:wd=123|issp=xxx 就可以指定:–param-del="|"

13.--cookie 绕过登陆验证 --cookie=“xxxxxxx”

14.--cookie_del 指定cookie的分隔符 --cookie_del=’|’

15.--user-agent 指定浏览器标识头,如果不指定,那么sqlmap对站点进行扫描时默认使用sqlmap作为标识头,那么站点就可能会检测到sqlmap的行为,这一点和爬虫伪装很像

16.--random-agent 随机指定浏览器标识头

17.--host 指定http包中host头参数 当level>=3时

18.--porxy 指定代理,eg:–proxy=“127.0.0.1:81”

19.--porxy-cred 代理认证,eg:–proxy-cred=“name:pass”

20.--timeout 设置请求超时的时间,单位为秒。默认为30秒超时

21.--retries 设置超时重新连接的次数

以上就是Request的一些参数

injection类的参数:
22.-p 指定参数,此参数会使–level参数失效
eg:python sqlmap.py -u "xxx"默认不检查user-agent(当–level>=3时才会检查), 此时我们可以加上-p "user-agent"使其检查此参数

23.--skip 与-p相反,它排除指定的参数,比如:如果设置了–level=3,那么sqlmap会检查user-agent,此时使用–skip=“user-agent” 那么就不会检查

24.--dbms 指定数据库类型,如果我们发现一个站点的数据库使用mysql,就可以使用–dbms="mysql"以此跳过sqlmap分析站点数据库类型的过程

25.--os 指定系统信息

以上就是injection的一些参数

Detection类的参数:
26.--level 设置测试的等级,等级越高,检查的强度越大
一共1-5个等级,默认为1
等级2:会检查cookie
等级3:会检查user-agent
等级4:会检查refere
等级5:会检查host

27.--risk 设置风险等级(慎用!!!)
1-4个等级
默认为1
等级2:基于事件做测试
等级3:使用or进行测试
等级4:可能会进行update,delete等操作
等级越高,数据表被篡改的风险就越高

28.--string 指定基于布尔类型注入时,所返回成功的信息,方便sqlmap识别注入结果

29.--not-string 指定基于布尔类型注入时,所返回失败的信息,方便sqlmap识别注入结果

30.--code 指定注入时http返回的状态码

31.--text-only 指定返回页面中的某段内容

32.-f 指纹信息,返回dbms的操作系统,架构以及补丁信息等
eg:python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" -f

下面介绍发现注入点如何取数据:
33.-a 或者--all 获取数据库全部信息(包括所有表中的所有信息)

34.--current-user 获取当前用户
eg:python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" --current-user
在这里插入图片描述
35.--current-db 获取当前数据库

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" --current-db

在这里插入图片描述
36.--hostname 获取主机名

37.--users 获取所有用户

38.--dbs 查看目标服务器中有哪些数据库

39.--tables 目标数据库中有哪些表

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" --tables

在这里插入图片描述
40.--columns 获取数据库中的列 即字段信息

41.--dump 获取指定范围的所有数据
-D 指定数据库 -T指定数据表 -C指定字段

42.--dump_all 获取所有数据

43.--search 查询列,表和数据库名称

44.--comments 查询数据库的备注

45.--exclude-sysbds 排除系统数据库,例如information_schema

一个比较完整的流程
靶场:sqli-labs-master
下载链接:靶场下载连接
①.获取数据库

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" --dbs

在这里插入图片描述
②.查询指定数据库的信息
例如获取security中表信息

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" -D security --tables

在这里插入图片描述
获取到security中有4个表

③.获取指定表中的信息
获取email表中的字段

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" -D security -T emails --columns

在这里插入图片描述
④.获取字段信息

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" -D security -T emails -C id --dump

在这里插入图片描述
⑤.可以在获取数据库之后,直接使用–dump获取指定数据库中的全部信息
例如获取security中全部信息

python sqlmap.py -u "http://localhost/ALL/sql/sqli-labs-master/Less-1/?id=1" -D security --dump

在这里插入图片描述
直接列出了所有表,字段和字段中的信息

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值