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函数
sqlmap源码阅读_listTamperingFunctions和_setTamperingFunctions相关推荐
- sqlmap源码阅读
首先我必须承认的一点是,sqlmap的源码真的不是一周时间就能理解的,至少对于我来说一周是看不完的,必须要持续的投入时间和精力. 在阅读sqlmap源码的过程中,为了保持自己的兴趣,我对一些非核心代码 ...
- sqlmap源码阅读系列检查是否满足依赖
sqlmap --dependencies 可以用来检查sqlmap需要使用的一些依赖是否满足. 通过阅读源码我们知道了,核心是__import__()函数. 异常:ImportError __imp ...
- sqlmap源码阅读系列init中的_cleanupOptions
有很多人说sqlmap的源码很难,也有人说sqlmap的源码非常值得一读.我觉得这就像小马过河一样,你不读你就没有发言权.对我而言,截至目前,sqlmap的源码还在可以理解的范围内,至少要比unitt ...
- sqlmap源码阅读_setPreprocessFunctions和_setPostprocessFunctions
先来看下用法: sqlmap --preprocess="test1.py" sqlmap --postprocess="test2.py" 可以用来指定预处理 ...
- sqlmap源码入门笔记系列
sqlmap简介 sqlmap是一个开源的渗透测试工具,可以用来探测sql注入漏洞. sqlmap的源码 sqlmap源码就像是九阴真经一样,梅超风只是偷看了九阴真经的皮毛,就可以在江湖上掀起一阵腥风 ...
- 应用监控CAT之cat-client源码阅读(一)
CAT 由大众点评开发的,基于 Java 的实时应用监控平台,包括实时应用监控,业务监控.对于及时发现线上问题非常有用.(不知道大家有没有在用) 应用自然是最初级的,用完之后,还想了解下其背后的原理, ...
- centos下将vim配置为强大的源码阅读器
每日杂事缠身,让自己在不断得烦扰之后终于有了自己的清静时光来熟悉一下我的工具,每次熟悉源码都需要先在windows端改好,拖到linux端,再编译.出现问题,还得重新回到windows端,这个过程太耗 ...
- 源码阅读:AFNetworking(十六)——UIWebView+AFNetworking
该文章阅读的AFNetworking的版本为3.2.0. 这个分类提供了对请求周期进行控制的方法,包括进度监控.成功和失败的回调. 1.接口文件 1.1.属性 /**网络会话管理者对象*/ @prop ...
- 源码阅读:SDWebImage(六)——SDWebImageCoderHelper
该文章阅读的SDWebImage的版本为4.3.3. 这个类提供了四个方法,这四个方法可分为两类,一类是动图处理,一类是图像方向处理. 1.私有函数 先来看一下这个类里的两个函数 /**这个函数是计算 ...
最新文章
- 操作所有的数据库免费可视化界面靠它就够了,告别付费,告别白嫖,卸载Navicat!
- [js]uploadify结合jqueryUI弹出框上传,js中的冒出的bug,又被ie坑了
- nacos配置ap_Nacos 1.0.0 功能预览
- 前端学习(571):margin负值下的两栏自适应
- 会议之后,对应内容的再次确认
- 为什么一般都使用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢?...
- JavaScript中atEnd函数
- javascript-----日历控件
- CentOS修改IP地址
- ipmitool源码解析(一)——一次带内ipmitool raw data发送过程
- UE4 蓝图接口 BluePrint Interface
- 软件测试常用工具有哪些
- 如何成为很厉害的程序员?- 读《精进》
- 关于ModbusTCP通讯汇川PLC
- 龙贝格求积分算法例题_数值分析实习作业之龙贝格求积
- 【单片机毕业设计】【mcuclub-jj-003】基于单片机的八层电梯的设计
- android 电信4gapn,修改apn加快电信4g网速(电信最佳apn接入点)
- 【NLP】BiLSTM 命名实体识别 手写代码
- Docker容器总结
- 权限提升之——数据库提权
热门文章
- 【AI视野·今日CV 计算机视觉论文速览 第197期】Thu, 13 May 2021
- 类的定义与抽取 java 1615134563
- 演练 网站的头部导航栏的制作 1014 HTML
- css 盒模型 0302
- linux-用户的创建
- 数据结构与算法-笨办法解决问题1909
- CentOs6.5 修改主机名
- 大量开发者会将访问token和API密钥硬编码至Android应用
- Unity应用架构设计(10)——绕不开的协程和多线程(Part 1)
- bzoj1639[Usaco2007 Mar]Monthly Expense 月度开支*