SQLMAP的Tamper脚本—Base64encode的解读

Base64encode脚本的解读:

首先导入base家族的包:

import base64

导入sqlmap中定义的函数:

from lib.core.enums import PRIORITY     #导入sqlmap中lib.core.enums中的PRIORITY函数,
from lib.core.settings import UNICODE_ENCODING

定义一个方法,可以传入字符,并且将base编码传入的所有字符:

return base64.b64encode(payload.encode(UNICODE_ENCODING)) if payload else payload

  具体分析:

#!/usr/bin/env python                  #程序到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作

"""
Copyright (c) 2006-2018 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission                               #注释
"""

import base64                           #导入python中的base64包

from lib.core.enums import PRIORITY     #导入sqlmap中lib.core.enums中的PRIORITY函数,
from lib.core.settings import UNICODE_ENCODING    #导入sqlmap中lib.core.settings中的UNICODE_ENCODING函数

__priority__ = PRIORITY.LOW             #定义优先级,这里的级别为一般

def dependencies():                     #定义方法
    pass                                #不做任何事情,做占位语句;

def tamper(payload, **kwargs):          #定义一个名为tamper的方法,括号里的payload,**kwargs为定义的参数,**kwargs是字典存储,类似于定义一个数组
    """
    Base64-encodes all characters in a given payload     #这句话的意思是Base64的编码给payload中的所有的字符
                                                                                                            #注释,用来做文档说明
    >>> tamper("1' AND SLEEP(5)#")                       
    'MScgQU5EIFNMRUVQKDUpIw=='                           #这两句话的内容是,可以将"1' AND SLEEP(5)#"转化为“MScgQU5EIFNMRUVQKDUpIw==”
    """

    return base64.b64encode(payload.encode(UNICODE_ENCODING)) if payload else payload      #这是对payload的内容做改变的方式,base64.b64encode函数是对里面的内容进行加密
                                                                                           #payload.encode就是对上文def定义的方法内的传参进行一个加密
#是使用lib.core.settings中的UNICODE_ENCODING函数

  

posted @ 2020-03-27 21:25  Yayaro  阅读(519)  评论(0编辑  收藏  举报