sqlmap源码阅读_listTamperingFunctions和_setTamperingFunctions

sqlmap里面的tamper介绍

tamper是什么?中文是做手脚,篡改的意思。
一是指放在tamper目录下的一系例*.py文件,这些文件都定义了一个叫做tamper的函数。这些tamper会对字符串做一些处理,变种,用来绕过WAF,或者绕过防御,从而方便渗透测试。

例如:
sqlmap --url “example.com” --tamper=“base64encode.py”
在这里插入图片描述

使用方法

sqlmap --list-tamper 罗列出有哪些tamper脚步
在这里插入图片描述

sqlmap --tamper 使用指定的脚本

tamper的分类

有些tamper脚本是针对url的,有些tamper是针对指定数据库的,有些tamper是通用型的。

代码流程

list-tamper

–list-tamper命令行参数的解析。
在这里插入图片描述

_listTamperingFunctions()


def _listTamperingFunctions():
    """
    Lists available tamper functions
    """

    if conf.listTampers:
        infoMsg = "listing available tamper scripts\n"
        logger.info(infoMsg)

        for script in sorted(glob.glob(os.path.join(paths.SQLMAP_TAMPER_PATH, "*.py"))):
            content = openFile(script, "rb").read()
            match = re.search(r'(?s)__priority__.+"""(.+)"""', content)
            if match:
                comment = match.group(1).strip()
                dataToStdout("* %s - %s\n" % (setColor(os.path.basename(script), "yellow"), re.sub(r" *\n *", " ", comment.split("\n\n")[0].strip())))

其中我不太理解的地方有,需要学习下:
glob.glob() 这里是一个文件名匹配
match = re.search(r'(?s)__priority__.+"""(.+)"""', content) 这个语句,是正则表达式匹配,用来搜索注释语句。

获取文件路径
paths是从lib.core.data中导入的数据
paths.SQLMAP_TAMPER_PATH = os.path.join(paths.SQLMAP_ROOT_PATH, "tamper")

tamper

–tamper 参数解析
在这里插入图片描述
_setTamperingFunctions函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值