SQLMAP插件tamper编写与使用
今天继续给大家介绍渗透测试相关知识,本文主要内容是SQLMAP插件tamper编写与使用。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、SQLMAP插件tamper简介
我们在安装SQLMAP后,一般来说会有一个名为tamper的目录,如下所示:
在该目录下,有很多python脚本,如下所示:
这些python脚本,就是sqlmap的插件,tamper翻译成中文是过滤的意思,这些脚本,对sqlmap的payload进行一定的修改,将其中容易被拦截的关键字等过滤成可以绕过的形式,因此,这些脚本中的内容大多是一些替换,其中一个脚本的内容如下所示:
相关tamper脚本的功能介绍请查看文章: SQLMAP插件tamper模块介绍
二、SQLMAP插件tamper使用
上面我们介绍了SQLMAP插件tamper,而我们在使用SQLMAP对目标站点尝试进行SQL注入的时候,我们应该如何使用tamper插件呢。其实非常简单,只需要在使用SQLMAP命令的时候,添加–tamper,并指定tamper的名称即可,例如,我们执行命令:
python .\sqlmap.py -u http://127.0.0.1/sqli/Less-1/?id=1 --tamper randomcase --proxy=http://127.0.0.1:8080
该命令使用了–proxy参数来指定代理,这样可以使得我们使用burpsuit方便我们查看SQLMAP发送的数据包payload,burpsuit抓取到的数据包如下所示:
从上图可以看出,数据包中的payload进行了大小写随机转换的处理,tamper插件发挥作用。
三、SQLMAP插件tamper编写
最后,我们来简单介绍一下tamper插件的编写逻辑。
实际上,尽管SQLMAP自带有很多插件,但是这些插件均不能绕过当前使用的主流服务器安全防护软件。因此,我们如果要使用SQLMAP来进行SQL注入的渗透测试,经常需要自己手动编写tamper插件。
tamper插件的编写逻辑很简单,一个典型的tamper插件如下图所示:
从上图中可以看出,该插件的逻辑非常简单,输入的是原始的payload,该脚本会对payload进行处理后,然后输出处理后的payload,其核心处理语句如下所示:
retVal = re.sub(r"\s*=\s*", " LIKE ", retVal)
re.sub是依据正则表达式的替换函数,在该实例中,该函数使用了3个参数,第一个参数为正则表达式,第二个参数为要被替换成的字符,第三个参数为要检索的字符串。
该脚本的作用是,检索retVal字符串中符合该正则表达式的值,并且用LIKE替换,因此就起到了替换payload中的等号“=”,并且使用LIKE替换的目的。
因此,如果我们要编写自己的tamper插件,也可以参考上述逻辑,进行payload的替换,由于其格式是相同的,因此我们可以直接参考现有tamper格式,然后写入自己的内部逻辑,并最终生成一个py脚本,放到tamper目录下即可。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
做而论道_CS: 讨论浮点数,有意思吗? 浮点数,与计算机的关系,也只不过是使用了四个字节而已。 它是用 32 位数,代表了更大范围的数值 N。 它们之间换算,只能说是“加密、解密”的技术而已。 加解密,都是数学知识,与计算机没有半点关系。 因此,浮点数: 既不属于《计算机组成》, 也不属于《计算机原理》。 浮点数的运算,是由 “浮点机” 实现的。 (什么是定点机、浮点机,你可别说不知道啊。) 浮点数的运算,也并不需要你来编程。 intel 从 80486 开始,就在 CPU 中集成了 FPU。 (FPU 就是浮点数运算器。) 什么:对阶、舍入、上下溢、规格化 ..., FPU,就自动帮你完成这些运算了。 本质上,浮点数的这点事,都在硬件方面。 你还说它干嘛? 难道,你想设计 CPU 中的硬件(FPU)? 还是别抱这个幻想了。 讨论浮点数,只是计算机老师,给你挖的大坑! 不小心掉下去了,要赶紧出来才是。 浮点数,怎样怎样,就不用琢磨了。 你只要在高级语言中,会用浮点数就行了。 使用高级语言,对计算机内部的工作过程,是不必深究的。
北风之神c: 总结的很全面的爬虫,写得赞,博主用心了。 此国产分布式函数调度框架 funboost python万能通用函数加速器 https://funboost.readthedocs.io/zh-cn/latest/articles/c8.html , 只需要@boost一行代码,加到任意新/旧爬虫项目就又强又自由又简单。 funboost 分布式函数调度框架,定位于调度用户的任何函数,只要用户在函数里面写爬虫代码,就可以分布式调度爬虫, 并且对爬虫函数施加30种控制功能,例如 qps恒定 任何时候随意关机重启代码消息万无一失确认消费 非常简单的开启多进程叠加线程/协程,这些强大的功能绝大部分爬虫框架还做不到。 此框架如果用于爬虫,不管从任何方面比较可以领先scrapy 20年,也比任意写的爬虫框架领先10年。 普通爬虫框架一般就设计为url请求调度框架,url怎么请求都是被框内置架束缚死了, 所以有些奇葩独特的想法在那种框架里面难以实现,用户需要非常之精通框架本身然后改造框架才能达到随心所欲的驾驭的目的。 普通的爬虫框架与用户手写requests 请求解析存储,在流程逻辑上是严重互斥的,要改造成使用那种框架改造需要大改特改。 而此框架是函数调度框架,函数里面用户可以随意写一切任意自由想法,天生不会有任何束缚。 使用funboost爬虫,与用户使用别的爬虫框架或者无框架用户手写多线程爬虫相比, funboost都代码更少更强更简单更自由。 pip install funboost 或者是直接使用 pip install boost_spider (powerd by funboost ,boost_spider比funboost增加了更加专门的针对爬虫请求和解析和存储) https://github.com/ydf0509/b
学网络的小: 太细了
2301_79759517: PASS5
szy26fxs: 为什么PC分配到254的ip啊,不应该是从大到小的253吗