渗透工具教程:SQLMap教程-入门 – 作者:SamSara茶

0x00 简介

SQLMap 是一个开源的SQL注入工具,可以用来进行自动化检测,甚至可以利用 SQL 注入漏洞直接获取目标数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

SQLMap支持的五种注入方法:

1.基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中

2.基于布尔的盲注,即可以根据返回页面判断条件真假的注入

3.基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断

4.联合查询注入,可以使用 union 的情况下的注入

5.堆查询注入,可以同时执行多条语句的执行时的注入

0x01 安装

官网:https://sqlmap.org/

1619431858_608691b258a1bdced24e9.png!small?1619431859954下载后解压1619431930_608691fae7e6908d56a64.png!small?1619431932439

这里重点关注几项1619431937_60869201e7b116bfa25e8.png!small?1619431939493

Tamper目录:存放tamper脚本

Sqlmap.py:sqlmap主程序入口

Sqlmapapi.py:SQLMap的API调用模式

0x02 基本使用

本次以SQLI-labs靶场为目标进行演示

SQLMAP的语法将会在演示中逐个演示

进入Less-1,随意上个ID1619431948_6086920cbe50d0d30f954.png!small?1619431950238

使用SQLmap自动化探测,命令如下

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

参数说明:

-u / –url:目标URL,注意是漏洞URL不是系统URL1619431961_6086921930c82c7c5e354.png!small?1619431962769

1619431967_6086921f852deb6cfa3d4.png!small?1619431969147SQLMap检测到后台数据库可能是MySQL,询问我们是否跳过其他数据库的检测,选择Y跳过直接进行下一步

1619431976_60869228d3ba0830830e9.png!small?1619431978341提示是否扫描等级为1风险为1下的所有payload,选择Y1619431991_60869237cc67159fef309.png!small?1619431993423

1619432002_60869242350e6f3ac138e.png!small?1619432003889参数ID是可以注入的,是否测试其他参数,由于本次只有一个参数,所以直接跳过即可

1619432016_608692502906f152a95c0.png!small扫描结束,sqlmap为我们列举了四种可以注入的类型,分别四报错注入、布尔盲注、时间盲注和联合查询注入。

0x03 部分参数

上文使用SQLMap成功检测到了注入点,为了更深入的探测数据库信息,先了解几个常用参数

–banner:指纹信息

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

–dbs:获取数据库列表

–tables:获取所有的数据表

–columns:获取所有字段(列)

–dump:获取行数据

-D:指定数据库

-T:指定数据表

-C:指定字段,用逗号间隔

–user:当前用户

–current-db:当前数据库

–is-dba:是否为DBA(Database Administrator)

0x04 获取数据

有了上面的基础,接下来就利用SQLMap获取当前数据库中的所有信息(拖库)

4.1 探测当前使用的数据库

1619432050_6086927221feff9b75ffc.png!small?16194320516781619432057_608692792a5d50b80e4ef.png!small?1619432058841当前数据库为:security

4.2 探测数据表

1619432065_608692817290f65dc54e9.png!small?16194320670561619432070_60869286f20c1a9f6b7cf.png!small?1619432072622根据浏览器显示的信息和表名联合推测使用的数据表为users1619432076_6086928cae29425624d6d.png!small?1619432078147

4.3 获取user表中所有的行

1619432085_60869295d9d786db716d1.png!small?16194320874131619432095_6086929fc7d36f44bb301.png!smallNICE,成功拖库,其他的数据表自然也不在话下

0x05 拓展

5.1 探测POST请求的URL

对于POST请求的数据包可以使用-r参数从文件中读取数据

进入Less-11,抓取登录数据包1619432132_608692c41eee81184fecb.png!small?1619432133544

1619432138_608692ca5abb7dd93c023.png!small?1619432139977将BP中数据包保存到本地文件1619432144_608692d040cfc5688c575.png!small?1619432145787

1619432151_608692d77003a4b617036.png!small?16194321529461619432157_608692dd62c8ce364819e.png!small?16194321589131619432162_608692e2be5db84413738.png!small?1619432164229成功检测注入点

5.2 探测等级和风险等级

–level:指定探测等级(1-5),级别越高探测的就越全面(不等于效果更好)

–risk:指定允许使用的payload等级(1-5),级别越高,payload越全,但是风险也随之增长

来源:freebuf.com 2021-04-26 18:18:33 by: SamSara茶

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论