SqlMapTamper使用指南
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使用指南相关推荐
- 超详细中文预训练模型ERNIE使用指南-源码
作者 | 高开远,上海交通大学,自然语言处理研究方向 最近在工作上处理的都是中文语料,也尝试了一些最近放出来的预训练模型(ERNIE,BERT-CHINESE,WWM-BERT-CHINESE),比对 ...
- 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题
入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...
- ASIC设计-终极指南
ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...
- Python神经网络集成技术Guide指南
Python神经网络集成技术Guide指南 本指南将介绍如何加载一个神经网络集成系统并从Python运行推断. 提示 所有框架的神经网络集成系统运行时接口都是相同的,因此本指南适用于所有受支持框架(包 ...
- 深度学习框架集成平台C++ Guide指南
深度学习框架集成平台C++ Guide指南 这个指南详细地介绍了神经网络C++的API,并介绍了许多不同的方法来处理模型. 提示 所有框架运行时接口都是相同的,因此本指南适用于所有受支持框架(包括Te ...
- HTML5与CSS3权威指南之CSS3学习记录
title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...
- Maven入门指南⑦:Maven的生命周期和插件
Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...
- ini文件怎么使用_ftp文件下载工具,ftp文件下载工具是怎么使用的?使用指南
ftp文件下载工具是什么工具,可能有人会回答说不知道,因为一般只有从事网站管理的工作者会使用的多一点.但不是每个人生来就会的,所以刚开始肯定都会学习怎么使用.这篇文章就来教一下大家ftp文件下载工具是 ...
- 王建春计算机应用基础,计算机应用基础(本)教学指南.pdf
"计算机应用基础(本 )"教学指南 一.课程概况 课程性质.教学目标.教学内容等详见 "课程导学--学什么". 1.学习资源 现有教学资源 功能 "学 ...
- java修改 nsf中的数据_最新NSF申请指南中的一些重要改动
作者:孟津 美国NSF已更新其申请书的写作和提交指南,从2009年1月5日起实施.比较重要的变化有下列几点,涉及几个方面: 1. 博士后指导:每一个含有支持博士后资金的申请,必须在申请书规定的15页课 ...
最新文章
- curl linux 数组参数_Linux系统调用原理
- 惠普再“卖身”,软件业务卖给了这家鼻祖级公司
- 《剑指Offer》 二叉树的镜像
- Fedora 17 结实的奇迹:最新的OpenStack和JBoss
- Python爬虫教程:验证码的爬取和识别详解
- 玩转 SpringBoot 2 快速整合 Filter
- 卡尔曼滤波算法_GPS定位笔记3 (卡尔曼滤波定位算法)
- Eclipse+CDT+GDB调试android NDK程序(转)
- 第二次作业-Steam软件分析
- Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件
- 以撒的结合:胎衣+(启示录Revelations MOD)不起作用失效(道具可以捡但是没作用失效等)
- 比较PAFF和MBAFF
- python实现基于KNN算法的手写数字识别系统 非常详细!!!!
- B-样条曲线:重要性质
- 【爬虫修炼和实战】二、从requests开始——爬取喜马拉雅全站音频数据(基础篇)
- 美国软件开发实习生月薪排行榜
- CUDA C 编程权威指南 Grossman 第4章 全局内存
- java rhino 运行 js_Rhino -- 基于java的javascript实现
- 分享一个按键液晶多级菜单设计方法,工控行业中沿用多年,屡试不爽,附带本人一个调试通过
- Opencv图像处理 图像噪点与降噪 形体学变换