-tamper模块的简介

Sqlmap.py xxxxx --tamper“模块名”可调用–tamper中的模块进行绕过。

序号 脚本名称 注释
1 0x2char 将每个编码后的字符转换为等价表达
2 apostrophemask 替换为Utf8字符,用于过滤单引号
3 apostrophenullencode 使用unicode字符替换单引号
4 appendnullbyte 有效负载的结束位置加载零字节字符编码
5 base64encode 字符替换为base64编码
6 between (>)替换为between,between and替换(=)
7 bluecoat 在sql语句中用随机空白字符替换为空格,用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 围绕sql关键字添加多个空格
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头
下面是根据数据库不同进行分类:
适用于全部的数据库
3 apostrophemask.py
6 base64encode.py
30 multiplespaces.py
48 space2plus.py
49 space2randomblank.py
51 unionalltounion.py
37 securesphere.py
Mysql
41 space2hash.py
16 equaltolike.py
44 space2mssqlblank.py
45 space2mssqlhash.py
6 between.py
32 percentage.py
38 sp_password.py
9 charencode.py
35 randomcase.py
10 charunicodeencode.py
39 space2comment.py
mysql 版本>= 5.1.13
16 equaltolike.py
18 greatest.py
3 apostrophenullencode.py
22 ifnull2ifisnull.py
45 space2mssqlhash.py
26 modsecurityversioned.py
6 between.py
27 modsecurityzeroversioned.py
47 space2mysqldash.py
7 bluecoat.py
32 percentage.py
9 charencode.py
35 randomcase.py
55 versionedkeywords.py
39 space2comment.py
10 charunicodeencode.py
56 versionedmorekeywords.py
MySQL 版本< 5.1
19 halfversionedmorekeywords.py
MySQL 版本>= 5.1.13
21 space2morehash.py
22 ifnull2ifisnull
43 space2morehash
Oracle
18 greatest.py
3 apostrophenullencode.py
6 between.py
9 charencode.py
35 randomcase.py
10 charunicodeencode.py
39 space2comment.py
PostgreSQL
18 greatest.py
3 apostrophenullencode.py
6 between.py
9 charencode.py
35 randomcase.py
10 charunicodeencode.py
39 space2comment.py
Access
4 appendnullbyte.py
SQL Server
32 percentage
44 apace2mssqlblank
25 lowercase
16 equaltolike
35 randomcase
6 between
10 charunicodeencode

未知类型
8 chardoubleencode.py
52 unmagicquotes.py
36 randomcomments.py
在大多数实战情况下,工具只是为我们提供合理的思路,我们应该熟悉底层原理,并将其扩散思维,使其称为自己的利器。以便应对各种不同类型的环境。

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以给你一种典型的Python脚本,它可以用于SQLMAP的Tamper模块:import randomdef tamper(payload, **kwargs): """ Replace random character with an upper case """ retVal = payload if payload: retVal = "" quote, double_quote, first = False, False, True for i in range(len(payload)): if payload[i] == '\'' and not double_quote: quote = not quote elif payload[i] == '"' and not quote: double_quote = not double_quote random_char = random.choice("abcdefghijklmnopqrstuvwxyz") if not quote and not double_quote: if first: random_char = random_char.upper() first = False retVal += random_char return retVal ### 回答2: SQLMap是一款常用的SQL注入工具,它包含了许多模块,其中tamper模块用于修改HTTP请求和响应以绕过WAF(Web应用程序防火墙)或其他过滤机制。 可以编写一个示例脚本来说明如何使用tamper模块中的Python脚本。以下是一个基本的示例: ```python #!/usr/bin/env python # -*- coding: utf-8 -*- import random # 定义一个名称为my_tamper的函数 def my_tamper(payload, **kwargs): # 随机生成一个1或0的数,用于决定是否执行tamper if random.randint(0, 1) == 1: return payload else: # 将所有的'和"替换为%00 return payload.replace("'", "%00").replace('"', "%00") # 在tamper模块中注册函数 def register(): return {'my_tamper': my_tamper} ``` 上述脚本定义了一个名为`my_tamper`的函数,它接受一个名为`payload`的参数和其他任意参数,返回修改后的payload。在这个示例中,`my_tamper`函数的逻辑是随机决定是否执行tamper,如果执行tamper,则将payload中的单引号和双引号替换为`%00`。 脚本的最后一行`register()`用于将`my_tamper`函数注册到tamper模块中。 要在SQLMap中使用这个脚本,将脚本保存并命名为`my_tamper.py`,然后使用以下命令执行: `python sqlmap.py -u <target-url> --tamper my_tamper` 其中`<target-url>`是目标网站的URL。执行命令后,SQLMap将加载自定义的tamper脚本并将其应用于注入过程中的payload。 以上是一个简单的示例,tamper模块的具体使用方式和功能请参考SQLMap的官方文档以及tamper模块中的其他脚本。 ### 回答3: 下面是一个简单的SQLMAP的tamper模块中的Python脚本示例: ```python #!/usr/bin/env python # -*- coding: utf-8 -*- """ 这是一个SQLMAP tamper模块的示例。 该脚本用于在SQL注入漏洞测试期间修改从数据库获取的数据。 作者:聊聊AI小助手 """ import random import string # 定义tamper函数 def tamper(payload, **kwargs): # 生成一个随机字符串 random_string = ''.join([random.choice(string.ascii_letters + string.digits) for _ in range(5)]) # 将payload中的单引号替换为双引号 payload = payload.replace("'", '"') # 在payload中添加随机字符串 payload = payload.replace(" ", "/*{}*/".format(random_string)) return payload # 测试tamper函数 print(tamper("SELECT * FROM users WHERE id=1;")) ``` 上面的脚本是一个简单的tamper模块脚本示例,将payload中的单引号替换为双引号,并在payload中添加了一个随机字符串来绕过一些简单的过滤机制。 请注意,这只是一个示例,实际情况下,tamper模块的实现会更加复杂,并且会根据具体的注入漏洞和目标数据库进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值