SQLMAP插件tamper模块介绍

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

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

在SQLMAP中,有很多tamper插件,常用的tamper插件及其作用如下所示:
1、apostrophemast.py
该脚本可以将payload中所有的引号替换成utf-8的格式
2、base64encode.py
该脚本可以将payload替换成Base64编码的格式。
3、multiplespaces.py
该脚本可以将payload中关键字之间的单个空格替换成多个空格。
4、space2puls.py
该脚本可以将所有的空格替换成加号。
5、nonrecursivereplacement.py
该脚本可以将所有的SQL关键字替换成双写绕过的形式。
6、space2randomblan.py
该脚本可以将payload中的空格替换为其他有效字符,例如%0D(回车)、%0A(换行)等。
7、unionalltounion.py
该脚本可以将union all替换成union。(union all和union的都会对两个select查询的结果进行并集操作,但是其区别在于union不包括重复行,并且会进行默认规则的排序,而union all会包括重复行,不进行排序)
8、space2dash.py
该脚本可以将空格替换成–,然后添加随机的字符串,最后再添加换行符,这样可以绕过一些对SQL关键字的过滤。
9、space2mssqlblank
该脚本主要针对SQL Server2005和2000,可以将payload中的空格随机替换成其他等效符号来代替,这些等效符号包括(‘%01’, ‘%02’, ‘%03’, ‘%04’, ‘%05’, ‘%06’, ‘%07’, ‘%08’, ‘%09’, ‘%0B’, ‘%0C’, ‘%0D’, ‘%0E’, ‘%0F’, ‘%0A’)
这些url编码的含义如下图所示:
在这里插入图片描述
10、between.py
该脚本主要作用是将payload中的大于号“>”替换成not between 0 and。例如,将如下payload:

and a>b--

替换成:

and a not netween 0 and b--

11、percentage.py
该脚本的作用是在payload的每个字符前添加一个字符“%”,该脚本只适用于.asp语言,适合SQL Server2000、2005,MySQL5.1.56、5.5.11,Postgresql9.0。
12、sp_password.py
该脚本的作用是在payload的后面添加关键字“sp_password”,该脚本只适用于MSSQL,这样做的作用是含有该关键字的查询不会记录到MSSQL的T-SQL日志中。
13、charencode.py
该脚本的作用是将payload的全部内容进行URL编码处理。
14、randomcase.py
该脚本的作用是将payload中关键字进行随机大小写格式的替换。
15、charunicodeencode.py
该脚本的作用是将payload全部转化为unicode编码。
16、space2comment.py
该脚本的作用是将所有的空格转化为/**/。
17、equaltolike.py
该脚本的作用是将所有的“=”转换成like。
18、greatest.py
该脚本的作用是将字符“>”转换成greatest()函数。例如,原来的payload为:

a>b

则使用该脚本后,payload变成:

greatest(a,b+1)=a

19、ifnull2isnull.py
将payload中的ifnull()函数替换成isnull()。
20、modsecurityversioned.py
使用MySQL内联注释的方式/*!30963*/绕过对SQL语句中关键字的检测。
21、space2mysqlblank.py
该脚本可以将payload中的空格随机替换成等效符号(‘%09’, ‘%0A’, ‘%0C’, ‘%0D’, ‘%0B’)中的一种。
22、modsecurityzeroversioned.py
使用MySQL内联注释的方式/*!00000*/绕过对SQL语句中关键字的检测。
23、space2mysqldash.py
该脚本可以将payload中所有的空格替换成“–%0A”。
24、bluecoat.py
该脚本可以将空格随机替换成等效空白字符,并且将“=”替换成“like”。
25、versionedkeywords.py
该脚本可以将Payload中所有的SQL语句关键字添加/*!*/的注释符。
26、halfversionedmorekeywords.py
该脚本可以将SQL的每个关键字都替换成/*!0的MySQL注释,该脚本仅仅适用于小于5.1版本的MySQL数据库
27、space2morehash.py
该脚本可以将payload中的空格替换为#,并且在后面添加随机字符串和换行符%0a,可以起到分割SQL关键字的作用
28、apostrophenullencode.py
该脚本使用%00%27来替代Payload中的单引号,尝试绕过一些网站的过滤
29、appendnullbyte.py
该脚本可以在payload的结束位置处添加%00,在Access数据库中,%00可以作为截断符,类似于MySQL中的注释符
30、chardoubleencode.py
该脚本可以将payload进行双重URL编码。
31、unmagicquotes.py
该脚本可以将单引号转化成%bf%27,并注释到后面的内容使之生效。
32、randomcomments.py
该脚本可以使用随机的注释符/**/来分割SQL关键字。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 我可以给你一种典型的Python脚本,它可以用于SQLMAPTamper模块: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: 下面是一个简单的SQLMAPtamper模块的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
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值