sqlmap是一款人见人爱的自动化SQL渗透工具,能够以良好的引擎发现给定URL中的可注入处,并自动化的完成注入。但是由于SQL注入的影响过于广泛,致使现代程序的防护越来越严密。sqlmap/tamper是官方给出的一些绕过脚本,可以配合渗透测试人员完成更高效更高质量的测试。

本文共分为三个部分,第一部分简要对tamper进行介绍,以及为何要使用它,如何使用;第二部分给出版本(1.2.7-26)的官方sqlmap提供的tamper脚本,第三部分以数据库为区分,给出相应数据库可使用的tamper脚本,以便使用。

Part 1

【为什么】WAF,Web Application Firewall,即网站应用级入侵防御系统,通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护,有很强的输入验证功能,通过一定的判断机制检测输入的内容是否含有非法攻击语句。

为了绕过输入验证,达到预期的SQL注入目标,须对原本SQL语句进行同义改写,这种改写在很多情况下是莫名其妙的,但就是这莫名其妙的语句可以通过严密的WAF防守,达到数据库层面。更为神奇的是,数据库可以执行这段看似奇怪的SQL语句,实现预期的攻击。

【怎么做】当原始注入遇到困难时,可尝试加载相应脚本,进行绕过,说不定会有意外惊喜。在sqlmap的原命令中加入以下代码,即可使用脚本,进行更加强有力的渗透。

--tamper“脚本名称”

Part 2

sqlmap版本当前为1.2.7.20,共有57个tamper脚本,与1.0版本相比新增了19个脚本。

序号 脚本名称 注释
1 0x2char 将每个编码后的字符转换为等价表达
2 apostrophemask 单引号替换为Utf8字符
3 apostrophenullencode 替换双引号为%00%27
4 appendnullbyte 有效代码后添加%00
5 base64encode 使用base64编码
6 between 比较符替换为between
7 bluecoat 空格替换为随机空白字符,等号替换为like
8 chardoubleencode 双url编码
9 charencode 将url编码
10 charunicodeencode 使用unicode编码
11 charunicodeescape 以指定的payload反向编码未编码的字符
12 commalesslimit 改变limit语句的写法
13 commalessmid 改变mid语句的写法
14 commentbeforeparentheses 在括号前加内联注释
15 concat2concatws 替换CONCAT为CONCAT_WS
16 equaltolike 等号替换为like
17 escapequotes 双引号替换为\\\\
18 greatest 大于号替换为greatest
19 halfversionedmorekeywords 在每个关键字前加注释
20 htmlencode html编码所有非字母和数字的字符
21 ifnull2casewhenisnull 改变ifnull语句的写法
22 ifnull2ifisnull 替换ifnull为if(isnull(A))
23 informationschemacomment 标示符后添加注释
24 least 替换大于号为least
25 lowercase 全部替换为小写值
26 modsecurityversioned 空格替换为查询版本的注释
27 modsecurityzeroversioned 添加完整的查询版本的注释
28 multiplespaces 添加多个空格
29 nonrecursivereplacement 替换预定义的关键字
30 overlongutf8 将所有字符转义为utf8
31 overlongutf8more 以指定的payload转换所有字符
32 percentage 每个字符前添加%
33 plus2concat 将加号替换为concat函数
34 plus2fnconcat 将加号替换为ODBC函数{fn CONCAT()}
35 randomcase 字符大小写随机替换
36 randomcomments /**/分割关键字
37 securesphere 添加某字符串
38 sp_password 追加sp_password字符串
39 space2comment 空格替换为/**/
40 space2dash 空格替换为--加随机字符
41 space2hash 空格替换为#加随机字符
42 space2morecomment 空格替换为/**_**/
43 space2morehash 空格替换为#加随机字符及换行符
44 space2mssqlblank 空格替换为其他空符号
45 space2mssqlhash 空格替换为%23%0A
46 space2mysqlblank 空格替换为其他空白符号
47 space2mysqldash 空格替换为--%0A
48 space2plus 空格替换为加号
49 space2randomblank 空格替换为备选字符集中的随机字符
50 symboliclogical AND和OR替换为&&和||
51 unionalltounion union all select替换为union select
52 unmagicquotes 宽字符绕过GPC
53 uppercase 全部替换为大写值
54 varnish 添加HTTP头
55 versionedkeywords 用注释封装每个非函数的关键字
56 versionedmorekeywords 使用注释绕过
57 xforwardedfor 添加伪造的HTTP头

Part 3

下面以数据库为区分,给出每种数据库可供选择的tamper。若同一脚本适用不同数据库,则在每个数据库中都指出。

【MySQL】

版本 可用tamper编号 脚本名称
4/5.0/5.5 1 0x2char
6 between
9 charencode
16 concat2concatws
18 greatest
24 least
25 lowercase
35 randomcase
39 space2comment
49 space2randomblank
53 uppercase
5.1 7 bluecoat
46 space2mysqlblank
5.0/5.5 12 commalesslimit
13 commalessmid
21 ifnull2casewhenisnull
22 ifnull2ifisnull
42 space2morecomment
5.0 15 concat2concatws
26 modsecurityversioned
27 modsecurityzeroversioned
4.0/5.0 41 space2hash
5.1.56 10 charunicodeencode
5.1.56/5.5.11 32 percentage
56 versionedmorekeywords
4.0.18/5.0.22 19 halfversionedmorekeywords
4.0.18/5.1.56/5.5.11 55 versionedkeywords
5.1.41 43 space2morehash
未指定版本 14 commentbeforeparentheses
40 space2dash
45 space2mssqlhash
47 space2mysqldash

【SQLServer】

版本 可用tamper编号 脚本名称
2005/2000 10 charunicodeencode
32 percentage
44 space2mssqlblank
2005 6 between
9 charencode
16 equaltolike
25 lowercase
35 randomcase
39 space2comment
49 space2randomblank
53 uppercase
2002+ 33 plus2concat
2008+ 34 plus2fnconcat
未指定 14 commentbeforeparentheses

【Access】

版本 可用tamper编号 脚本名称
未指定 4 appendnullbyte

【Oracle】

版本 可用tamper编号 脚本名称
10g 6 between
9 charencode
14 commentbeforeparentheses
18 greatest
24 least
25 lowercase
35 randomcase
39 space2comment
49 space2randomblank
53 uppercase

【PostgreSQL】

版本 可用tamper编号 脚本名称
8.3/8.4/9.0 6 between
9 charencode
18 greatest
24 least
25 lowercase
39 space2comment
49 space2randomblank
53 uppercase
9.0 32 percentage
9.0.3 10 charunicodeencode
未指定 14 commentbeforeparentheses
35 randomcase

【MSSQL】

版本 可用tamper编号 脚本名称
未指定 38 sp_password

【SQLite】

版本 可用tamper编号 脚本名称
未指定 40 space2dash

【未知适用范围】

若以上脚本未解决问题,可尝试使用一下脚本。

版本 可用tamper编号 脚本名称
2 apostrophemask
3 apostrophenullencode
5 base64encode
8 chardoubleencode
11 charunicodeescape
17 escapequotes
20 htmlencode
23 informationschemacomment
28 multiplespaces
29 nonrecursivereplacement
30 overlongutf8
31 overlongutf8more
36 randomcomments
37 securesphere
48 space2plus
50 symboliclogical
51 unionalltounion
52 unmagicquotes
54 varnish
57 xforwardedfor

SqlMapTamper使用指南相关推荐

  1. 超详细中文预训练模型ERNIE使用指南-源码

    作者 | 高开远,上海交通大学,自然语言处理研究方向 最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(ERNIE,BERT-CHINESE,WWM-BERT-CHINESE),比对 ...

  2. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  3. ASIC设计-终极指南

    ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...

  4. Python神经网络集成技术Guide指南

    Python神经网络集成技术Guide指南 本指南将介绍如何加载一个神经网络集成系统并从Python运行推断. 提示 所有框架的神经网络集成系统运行时接口都是相同的,因此本指南适用于所有受支持框架(包 ...

  5. 深度学习框架集成平台C++ Guide指南

    深度学习框架集成平台C++ Guide指南 这个指南详细地介绍了神经网络C++的API,并介绍了许多不同的方法来处理模型. 提示 所有框架运行时接口都是相同的,因此本指南适用于所有受支持框架(包括Te ...

  6. HTML5与CSS3权威指南之CSS3学习记录

    title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...

  7. Maven入门指南⑦:Maven的生命周期和插件

    Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...

  8. ini文件怎么使用_ftp文件下载工具,ftp文件下载工具是怎么使用的?使用指南

    ftp文件下载工具是什么工具,可能有人会回答说不知道,因为一般只有从事网站管理的工作者会使用的多一点.但不是每个人生来就会的,所以刚开始肯定都会学习怎么使用.这篇文章就来教一下大家ftp文件下载工具是 ...

  9. 王建春计算机应用基础,计算机应用基础(本)教学指南.pdf

    "计算机应用基础(本 )"教学指南 一.课程概况 课程性质.教学目标.教学内容等详见 "课程导学--学什么". 1.学习资源 现有教学资源 功能 "学 ...

  10. java修改 nsf中的数据_最新NSF申请指南中的一些重要改动

    作者:孟津 美国NSF已更新其申请书的写作和提交指南,从2009年1月5日起实施.比较重要的变化有下列几点,涉及几个方面: 1. 博士后指导:每一个含有支持博士后资金的申请,必须在申请书规定的15页课 ...

最新文章

  1. curl linux 数组参数_Linux系统调用原理
  2. 惠普再“卖身”,软件业务卖给了这家鼻祖级公司
  3. 《剑指Offer》 二叉树的镜像
  4. Fedora 17 结实的奇迹:最新的OpenStack和JBoss
  5. Python爬虫教程:验证码的爬取和识别详解
  6. 玩转 SpringBoot 2 快速整合 Filter
  7. 卡尔曼滤波算法_GPS定位笔记3 (卡尔曼滤波定位算法)
  8. Eclipse+CDT+GDB调试android NDK程序(转)
  9. 第二次作业-Steam软件分析
  10. Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件
  11. 以撒的结合:胎衣+(启示录Revelations MOD)不起作用失效(道具可以捡但是没作用失效等)
  12. 比较PAFF和MBAFF
  13. python实现基于KNN算法的手写数字识别系统 非常详细!!!!
  14. B-样条曲线:重要性质
  15. 【爬虫修炼和实战】二、从requests开始——爬取喜马拉雅全站音频数据(基础篇)
  16. 美国软件开发实习生月薪排行榜
  17. CUDA C 编程权威指南 Grossman 第4章 全局内存
  18. java rhino 运行 js_Rhino -- 基于java的javascript实现
  19. 分享一个按键液晶多级菜单设计方法,工控行业中沿用多年,屡试不爽,附带本人一个调试通过
  20. Opencv图像处理 图像噪点与降噪 形体学变换

热门文章

  1. 三角函数中和差角公式的编辑方法
  2. Flutter仿京东商城项目实战视频教程
  3. python计算无穷级数求和常用公式_级数求和常用方法-级数求和法
  4. python右对齐 数字_python format格式化进阶-左对齐右对齐 取位数
  5. 极速office(Word)如何插入分数
  6. GoLang的安装和使用
  7. 让我们旋转跳跃不停歇~~~当3D打印遇上八音盒!(一)
  8. 用计算机抽样,利用计算机代替随机数骰子进行随机抽样
  9. C站能力认证(C4前端基础认证) //任务二:根据浮动布局以及定位布局的特性,实现构建下列(截图)中的页面
  10. Cookie测试之详解