1 / 9
文档名称:

sqlmap中tamper的套用编写.docx

格式:docx   大小:49KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

sqlmap中tamper的套用编写.docx

上传人:mh900965 2017/12/21 文件大小:49 KB

下载得到文件列表

sqlmap中tamper的套用编写.docx

相关文档

文档介绍

文档介绍:SQLmap中tamper的套用与编写
导语:tamper脚本不全,没有想要的功能,那就套用别人的思路改一个吧,不行,那就自己编一个………
为了说明tamper的结构,让我们从一个最简单的例子开始
为了说明tamper的结构,让我们从一个最简单的例子开始
# sqlmap/tamper/
from import PRIORITY
__priority__ =
def dependencies():
pass
def tamper(payload, **kwargs):
return ("'", "\\'").replace('"', '\\"')
不难看出,一个最小的tamper脚本结构为priority变量定义和dependencies、tamper函数定义。
priority定义脚本的优先级,用于有多个tamper脚本的情况。
dependencies函数声明该脚本适用/不适用的范围,可以为空。
tamper是主要的函数,接受的参数为payload和**kwargs
返回值为替换后的payload。比如这个例子中就把引号替换为了\\'。
我们在选一个脚本,,查看脚本中的tamper内容:
可以看到内容非常简单,将payload的内容内容做了base64编码然后直接返回。Tamper有两个参数第一个参数payload即为传入的实际要操作的payload,第二个参数**kwargs为相关httpheader。譬如你想插入或则修改header的时候可以用到。
逻辑流程弄清楚之后,很容易编写自己的tamper脚本了。
以使用%a0替换空格的脚本为例,,稍微修改下脚本:
在tamper里面再找一个插件,我们来分析分析他的构成。
#!/usr/bin/env python
"""
Copyright (c) 2006-2016 sqlmap developers (/)
See the file 'doc/COPYING' for copying permission
"""
from import PRIORITY
__priority__ =
def dependencies():
    pass
def tamper(payload, **kwargs):
    """
    Replaces space character (' ') with plus ('+')
    Notes:
        * Is this any useful? The plus get's url-encoded by sqlmap engine
          invalidating the query afterwards
        * This tamper script works against all databases
    >>> tamper('SELECT id FROM user