【转载】sqlmap-tamper使用介绍

本文详细介绍SQLMap的57个tamper脚本,包括各脚本的功能与适用的数据库版本,如MySQL、SQLServer、Oracle等。这些脚本帮助绕过WAF,提升SQL注入攻击成功率。

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

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

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

【MySQL】

版本可用tamper编号脚本名称
4/5.0/5.510x2char
"6between
"9charencode
"16concat2concatws
"18greatest
"24least
"25lowercase
"35randomcase
"39space2comment
"49space2randomblank
"53uppercase
5.17bluecoat
"46space2mysqlblank
5.0/5.512commalesslimit
"13commalessmid
"21ifnull2casewhenisnull
"22ifnull2ifisnull
"42space2morecomment
5.015concat2concatws
"26modsecurityversioned
"27modsecurityzeroversioned
4.0/5.041space2hash
5.1.5610charunicodeencode
5.1.56/5.5.1132percentage
"56versionedmorekeywords
4.0.18/5.0.2219halfversionedmorekeywords
4.0.18/5.1.56/5.5.1155versionedkeywords
5.1.4143space2morehash
未指定版本14commentbeforeparentheses
"40space2dash
"45space2mssqlhash
"47space2mysqldash

【SQLServer】

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

【Access】

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

【Oracle】

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

【PostgreSQL】

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

【MSSQL】

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

【SQLite】

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

【未知适用范围】
若以上脚本未解决问题,可尝试使用一下脚本。

版本可用tamper编号脚本名称
"2apostrophemask
"3apostrophenullencode
"5base64encode
"8chardoubleencode
"11charunicodeescape
"17escapequotes
"20htmlencode
"23informationschemacomment
"28multiplespaces
"29nonrecursivereplacement
"30overlongutf8
"31overlongutf8more
"36randomcomments
"37securesphere
"48space2plus
"50symboliclogical
"51unionalltounion
"52unmagicquotes
"54varnish
"57xforwardedfor
<think>好的,用户的问题是关于如何查找曾经使用过的sqlmap tamper脚本,并希望得到脚本列表的示例。首先,我需要确认用户的需求。他们可能在使用sqlmap进行渗透测试时,使用了多个tamper脚本,但现在想要回顾或再次使用这些脚本,需要知道如何查看已使用的列表。 根据用户提供的引用资料,特别是引用[4]和[5],可以看到用户可能已经通过命令行参数--tamper指定过脚本,并且可能有多个tamper脚本需要考虑优先级问题。因此,回答中需要包括如何通过命令行历史或日志文件来查找曾经使用过的tamper脚本。 接下来,我需要考虑用户可能的使用场景。他们可能是在测试中使用了不同的tamper脚本进行绕过WAF或其他安全机制,现在需要复查或重复测试流程。因此,提供具体的查找方法和示例列表会很有帮助。 用户可能不知道sqlmap本身是否有直接列出已用脚本的功能,但根据引用资料,sqlmap并没有内置这样的功能,所以需要依赖命令行历史或日志。因此,我应该建议用户检查他们的终端历史记录或保存的日志文件,以找到之前使用tamper参数。 另外,用户可能需要一些常用的tamper脚本示例,以便参考。根据常见的sqlmap tamper脚本,如space2comment、between、randomcase等,这些可以作为示例列出,帮助用户回忆或确认他们可能使用过的脚本。 还要注意用户提到的优先级问题,引用[5]中提到多个tamper脚本的优先级设置,所以在示例列表中可能需要提到这点,但用户当前的问题主要是查找使用过的脚本,所以优先级部分可以作为补充信息。 最后,确保回答符合格式要求,使用中文,正确使用LaTeX格式(虽然这个问题可能不太涉及数学公式),结构清晰,并在末尾添加相关问题。同时,引用正确的引用标识,如引用[4]和引用[5]中提到的命令行使用和优先级问题。</think>要查找曾经使用过的sqlmap tamper脚本,可通过以下两种方式实现: ### 方法1:命令行历史查询 在Linux/macOS系统中,使用`history`命令查看历史记录,过滤关键词`--tamper`: ```bash history | grep "sqlmap" | grep "--tamper" ``` 示例输出可能显示: ``` python sqlmap.py -u "http://example.com" --tamper=space2comment,between python sqlmap.py -r test.txt --tamper=randomcase,charencode ``` ### 方法2:日志文件追溯 若运行sqlmap时启用了日志功能(参数`-t`),可直接搜索日志文件内容: ```bash cat sqlmap_log.txt | grep "tamper" ``` ### 常用tamper脚本示例列表 1. **space2comment**:替换空格为`/**/`注释符[^2] 2. **between**:将`>`替换为`BETWEEN 0 AND #`[^1] 3. **randomcase**:随机字母大小写转换(如`SELECT`→`SeLeCt`)[^5] 4. **charencode**:对payload进行URL编码[^3] 5. **equaltolike**:将`=`替换为`LIKE`绕过简单过滤[^4] ### 脚本使用优先级说明 若同时使用多个tamper脚本sqlmap会按照`PRIORITY`参数定义的优先级顺序执行。例如: ```bash --tamper=between,randomcase # between优先级高于randomcase ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值