SQLMAP插件tamper编写与使用详解

 更新时间:2022年08月26日 10:26:21   作者:永远是少年啊  
这篇文章主要介绍了SQLMAP插件tamper编写与使用,包括SQLMAP插件tamper简介及SQLMAP插件tamper使用,本文给大家介绍的非常详细,需要的朋友可以参考下

今天继续给大家介绍渗透测试相关知识,本文主要内容是SQLMAP插件tamper编写与使用。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、SQLMAP插件tamper简介

我们在安装SQLMAP后,一般来说会有一个名为tamper的目录,如下所示:

在这里插入图片描述

在该目录下,有很多python脚本,如下所示:

在这里插入图片描述

这些python脚本,就是sqlmap的插件,tamper翻译成中文是过滤的意思,这些脚本,对sqlmap的payload进行一定的修改,将其中容易被拦截的关键字等过滤成可以绕过的形式,因此,这些脚本中的内容大多是一些替换,其中一个脚本的内容如下所示:

在这里插入图片描述

相关tamper脚本的功能介绍请查看文章:SQLMAP插件tamper模块介绍

二、SQLMAP插件tamper使用

上面我们介绍了SQLMAP插件tamper,而我们在使用SQLMAP对目标站点尝试进行SQL注入的时候,我们应该如何使用tamper插件呢。其实非常简单,只需要在使用SQLMAP命令的时候,添加–tamper,并指定tamper的名称即可,例如,我们执行命令:

python .\sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --tamper randomcase --proxy=http://127.0.0.1:8080

该命令使用了–proxy参数来指定代理,这样可以使得我们使用burpsuit方便我们查看SQLMAP发送的数据包payload,burpsuit抓取到的数据包如下所示:

在这里插入图片描述

从上图可以看出,数据包中的payload进行了大小写随机转换的处理,tamper插件发挥作用。

三、SQLMAP插件tamper编写

最后,我们来简单介绍一下tamper插件的编写逻辑。
实际上,尽管SQLMAP自带有很多插件,但是这些插件均不能绕过当前使用的主流服务器安全防护软件。因此,我们如果要使用SQLMAP来进行SQL注入的渗透测试,经常需要自己手动编写tamper插件。
tamper插件的编写逻辑很简单,一个典型的tamper插件如下图所示:

在这里插入图片描述

从上图中可以看出,该插件的逻辑非常简单,输入的是原始的payload,该脚本会对payload进行处理后,然后输出处理后的payload,其核心处理语句如下所示:

retVal = re.sub(r"\s*=\s*", " LIKE ", retVal)

re.sub是依据正则表达式的替换函数,在该实例中,该函数使用了3个参数,第一个参数为正则表达式,第二个参数为要被替换成的字符,第三个参数为要检索的字符串。
该脚本的作用是,检索retVal字符串中符合该正则表达式的值,并且用LIKE替换,因此就起到了替换payload中的等号“=”,并且使用LIKE替换的目的。
因此,如果我们要编写自己的tamper插件,也可以参考上述逻辑,进行payload的替换,由于其格式是相同的,因此我们可以直接参考现有tamper格式,然后写入自己的内部逻辑,并最终生成一个py脚本,放到tamper目录下即可。

到此这篇关于SQLMAP插件tamper编写与使用的文章就介绍到这了,更多相关SQLMAP tamper使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL Server 2012 多表连接查询功能实例代码

    SQL Server 2012 多表连接查询功能实例代码

    这篇文章主要介绍了SQL Server 2012 多表连接查询功能实例代码,需要的朋友可以参考下
    2017-01-01
  • sqlserver存储过程中SELECT 与 SET 对变量赋值的区别

    sqlserver存储过程中SELECT 与 SET 对变量赋值的区别

    SQLServer中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT。对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们并没有注意,其实这两种方式还是有很多差别的。
    2011-04-04
  • SQL普通表转分区表的方法

    SQL普通表转分区表的方法

    SQL普通表转分区表的方法,需要的朋友可以参考一下
    2013-03-03
  • 数据结构简明备忘录 线性表

    数据结构简明备忘录 线性表

    线性表是线性结构的抽象,线性结构的特点是结构中的数据元素之间存在一对一的线性关系。
    2010-03-03
  • sql根据表名获取字段及对应说明

    sql根据表名获取字段及对应说明

    sql根据表名获取字段及对应说明,需要的朋友可以参考下。
    2010-09-09
  • 通过分析SQL语句的执行计划优化SQL

    通过分析SQL语句的执行计划优化SQL

    基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比
    2011-10-10
  • 在SQL Server中恢复多个数据库的方法小结

    在SQL Server中恢复多个数据库的方法小结

    这篇文章主要介绍了如何在SQL Server中恢复多个数据库,通常情况下,只要备份文件的名称与相应的数据库匹配,且没有附加的日期或时间信息,就可以通过有效的 T-SQL 脚本来完成恢复,文中给介绍了在SQL Server中恢复多个数据库的方法小结,需要的朋友可以参考下
    2024-09-09
  • SQL Server 服务由于登录失败而无法启动

    SQL Server 服务由于登录失败而无法启动

    当域的密码被修改过后,相应服务使用的登陆验证信息不会自动更新需要手动来更新,才能解决此问题。如果大家嫌比较麻烦,还是像上面的解决方案那样直接将登陆身份修改为“本地系统帐户”比较简单。
    2010-05-05
  • SQL Server数据库表的创建与管理操作大全

    SQL Server数据库表的创建与管理操作大全

    这篇文章主要给大家介绍了关于SQL Server数据库表的创建与管理操作的相关资料, SQL Server是一个关系型数据库管理系统,它可以帮助用户创建、管理和查询数据,文中介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • SQLSERVER语句的执行时间显示的统计结果是什么意思

    SQLSERVER语句的执行时间显示的统计结果是什么意思

    在SQL语句调优的时候,大部分都会查看语句执行时间,究竟SQLSERVER显示出来的统计结果是什么意思,接下来为您一一解释,感兴趣的朋友可以了解下
    2013-01-01

最新评论