Burpsuit构造测试数据
一、使用场景
测试设备web性能优化时,需要构造或删除多个user、设备、设备账号、订单等,除了使用excel批量导入外,有些数据构造/删除使用burpsuit代理并将对应请求发送到Burp Intruder模块中改参数对应value,同时根据场景配置选择不同的attack type,设置需要修改参数值的变量类型和变量取值规则,进行attack攻击可以很方便达到数据构造
二、模块说明
Burp Intruder主要有四个模块组成:
1:Target 用于配置目标服务器进行攻击的详细信息。
2:Positions 设置Payloads的插入点以及攻击类型(攻击模式)。
3:Payloads 设置payload,配置字典
4:Opetions 此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。
1:Target 目标选项(Target tab)
这个选项是用来配置目标服务器的细节:


2:Positions 位置选项(Positions tab)
这个选项是用来配置在攻击里产生的所有 HTTP 请求的模板:


使用一对§字符来标记出有效负荷的位置,在这两个符号直接包含了模板文本的内容。当把一个有效负荷放置到一个给出的请求的特殊位置上时,就把这§符号放到这个位置,然后在两个符号之间的出现的文本都会被有效负荷替换。当有个特殊位置没有为一个给出的请求安排有效负荷时(这只适用”sniper”攻击类型),那个位置的§字符会被删除,出现在它们之间的文本不会变化。
当使用 Burp Suite 发送一个其他地方的请求时,Burp Intruder 会对你最想放置有效负荷的位置做一个最好的猜测,并且它把这些放置在每个 URL 和主体参数的值里,以及每个cookie 里。每个标记和它中间的文本都会被加亮以显得更清晰。你可以使用 Intruder 菜单上的选项标记的位置是要替换还是附加现有的参数值。在上面的请求编辑器里,指出了定义位置的数量和文本模板的大小。
你可以使用选项上的按钮来控制位置上的标记:
1. add § — 在当前光标位置插入一个位置标记。
2. clear § — 删除整个模板或选中的部分模板里的位置标记。
3. auto § — 这会对放置标记的位置做一个猜测,放哪里会有用,然后就把标记放到相应位置。这是一个为攻击常规漏洞(SQL 注入)快速标记出合适位置的有用的功能,然后人工标记是为自定义攻击的。
4.refresh — 如果需要,可以刷新编辑器里有颜色的代码。
5.clear — 删除整个编辑器内容。
3:Payloads 有效负荷选项(Payloads tab)
这个选项是用来配置一个或多个有效负荷的集合。如果定义了”cluster bomb”和”pitchfork”攻击类型,然后必须为每定义的有效负荷位置(最多8个)配置一个单独的有效负荷。使用”payload set”下拉菜单选择要配置的有效负荷。
选项1:Payload SetsPayload数量类型设置
选项2:Payload Opetions[Simple list] 该选项会根据选项1中Payload type的设置而改变


选项3:Payload Processing对生成的Payload进行编码、加密、截取等操作


选项4:Payload Encoding你可以配置哪些有效载荷中的字符应该是URL编码的HTTP请求中的安全传输。任何已配置的URL编码最后应用,任何有效载荷处理规则执行之后。 这是推荐使用此设置进行最终URL编码,而不是一个有效载荷处理规则,因为可以用来有效载荷的grep选项来检查响应为呼应有效载荷的最终URL编码应用之前。


4:Opetions 选项卡(Options tab)此选项卡包含了request headers,request engine,attack results ,grep match,grep_extrack,grep payloads和redirections。你可以发动攻击之前,在主要Intruder的UI上编辑这些选项,大部分设置也可以在攻击时对已在运行的窗口进行修改。
选项1:Request Headers 这些设置控制在Intruder是否更新配置请求头。


如果选中‘update Content-Length header’框,Burp Intruder 会使用每个请求的 HTTP 主体长度的正确值,添加或更新这个请求里 HTTP 消息头的内容长度。这个功能对一些需要把可变长度的有效载荷插入到 HTTP 请求模板主体的攻击是很有必要的。这个 HTTP 规范和大多数 web 服务器一样,需要使用消息头内容长度来指定 HTTP 主体长度的正确值。如果没有指定正确值,目标服务器会返回一个错误,也可能返回一个未完成的请求,也可能无限期地等待接收请求里的进一步数据。
如果选中‘set Connection: close’框,则 Burp Intruder 会添加或更新 HTTP 消息头的连接来请求在每个请求后已关闭的连接。在多数情况下,这个选项会让攻击执行得更快。
选项2:Request Engine 设置发送请求的线程、超时重试等。


选项3:Attack Results 设置攻击结果的显示。


选项4:Grep – Match 在响应中找出存在指定的内容的一项。


选项5:Grep – Extract 通过正则提取返回信息中的内容。


选项6:Grep – Payloads 这些设置可以用于包含已提交的有效负载的反射的标志结果项目。如果启用了此选项,BurpSuite会添加包含一个复选框指示当前负载的值在每个响应发现新的结果列。


选项7:Redirections 重定向响应,控制Burp在进行攻击时如何处理重定向。

Burp Suite Intruder的4种攻击类型
以下面这一段参数为例,被§§包围的部分为需要破解的部分:
user=§ss§&password=§zxcv§&imageField.x=17&imageField.y=1
(1) (2)
----------------------------------------------------------
payload1 = [admin,administrator,sys,system,root]
payload2 = [pass,passwd,pwd]
1. Sniper (狙击)
按顺序将(1)(2)其中之一中使用所给的payload进行替换,另一个参数不变.
若在这里使用payload2的话,破解尝试顺序为:
user | password
-------------------
ss | pass
ss | passwd
ss |pwd
pass | zxcv
passwd | zxcv
pwd| zxcv
2. Battering ram (撞击)
使用payload同时替换所有被选中的位置.
在这里使用payload2的话,破解尝试顺序为:
user | password
-------------------
pass | pass
passwd | passwd
pwd|pwd
3. Pitchfork (交叉)
按顺序分别使用payload1替换(1),payload2替换(2).payload数量较少的列表用完则停止.
破解方式如下:
foriinrange( min(len(payload1),len(payload2)) ):
user = payload1[i]
password = payload2[i]
4. Cluster Bomb (集束炸弹)
通常意义上的穷举法.
foriinpayload1:
forjinpayload2:
user = payload1
password = payload2
三、数据构造演示
1、新建多个设备
Step1、burpsuit中开启代理设置及浏览器代理配置为burpsuit中代理地址


‘’


Step2、burp中proxy中开启代理intercept拦截功能,IE浏览器中新建设备页面填写新建设备后点击确定,burp代理中将可以看到新建设备请求


Step3、步骤2中看到对应请求后鼠标右击“send to Intruder”后,Intruder模块中可以看到对应请求,如下


Step4、步骤3可看到每个传入参数burpsuit都自动会替换成一个Payloads,可以根据需求“Clear$”后选择某个变量点击“Add$”,


Step5、设置Positions中Attack type,此处设置会影响到后续Payloads的配置,具体Attack type差异和影响Payloads配置可查看本文前面描述,此处保持为默认Sniper模式:


Step6、设置Payloads变量生成规则,此处设置的规则会影响attack的结果和发起attack请求数量,此处新建设备只需要改变设备名称变量即可,设置规则较简单,如下




Step7、配置基本完成,如果有需要可在Options配置发起请求的多线程数目,后点击Start attack即可(tip:此处可能会出现很多请求失败的情况,有可能是获取token失效,重新获取到token替换发起attack即可)


Burpsuit构造测试数据的更多相关文章
- DB2 函数快速构造测试数据
函数快速构造测试数据 [案例]使用DB2内置函数快速构造测试数据 无论您是在用原型证明某一概念,还是开发一个全新的应用程序,或者只是学习 SQL,您都需要在您的应用程序上运行测试数据.为了有效地测试应 ...
- MySQL构造测试数据
构造测试数据(笛卡尔积,6 次100 万) create table t1(id int, val varchar(80)); set @i := 0;create table tmp as sele ...
- 关于python如何构造测试数据
参考资料:https://www.cnblogs.com/miaoxiaochao/p/13234589.html 一.Faker模块是什么? 一个Python第三方模块,主要用来创建伪数据 无需再手 ...
- 有了faker,再也不用为了构造测试数据而烦恼啦!
在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据.在手动制造数据的过程中,可能需要花费大量精力和工作量,此时可以借助Py ...
- 通过Java构造参数列表
背景:我们在进行性能测试时,需要构造测试数据,即参数化文件,如下: 上面的文件内容,我们可以通过Java代码轻松实现,主要代码解释: All 代码(其实我也看不懂,但是会改就行啦) package f ...
- 从结构和数字看OO——面向对象设计与构造第一章总结
不知不觉中,我已经接触OO五周了,顺利地完成了第一章节的学习,回顾三次编程作业,惊喜于自身在设计思路和编程习惯已有了一定的改变,下面我将从度量分析.自身Bug.互测和设计模式四个方向对自己第一章的学习 ...
- MySQL碎碎念
1. 如何修改Mysql的用户密码 mysql> update mysql.user set password=password('hello') where user='root'; mysq ...
- 如何利用pt-online-schema-change进行MySQL表的主键变更
业务运行一段时间,发现原来的主键设置并不合理,这个时候,想变更主键.这种需求在实际生产中还是蛮多的. 下面,看看pt-online-schema-change解决这类问题的处理方式. 首先,创建一张测 ...
- pt-online-schema-change中update触发器的bug
pt-online-schema-change在对表进行表结构变更时,会创建三个触发器. 如下文测试案例中的t2表,表结构如下: mysql> show create table t2\G . ...
随机推荐
- ZooKeeper系列(三)—— Zookeeper 常用 Shell 命令
一.节点增删改查 1.1 启动服务和连接服务 # 启动服务 bin/zkServer.sh start #连接服务 不指定服务地址则默认连接到localhost:2181 zkCli.sh -serv ...
- Unity进阶之ET网络游戏开发框架 05-搭建自己的第一个Scene
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- 纯数据结构Java实现(3/11)(链表)
题外话: 篇幅停了一下,特意去看看其他人写的类似的内容:然后发现类似博主喜欢画图,喜欢讲解原理. (于是我就在想了,理解数据结构的确需要画图,但我的文章写给懂得人看,只配少量图即可,省事儿) 下面正题 ...
- Xshell登陆服务器及Linux的简单命令
在之前的推文中,我已经给出了怎样利用Git登陆服务器”你在用xshell,putty登陆?推荐一个小工具(Git)登陆“其中包括xshell登陆服务器.今天讲讲常见的Linux命令,这个和之前将的利用 ...
- 初识JAVA语言
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 前言 很多游戏开发者可能会有疑问,你会C#,JS,TS,为什么还要初识JAVA呢?有人可能会说,多学点对自己有好处 ...
- 【CocosBuilder】学习笔记目录
从2019年8月底开始学习CocosBuilder. CocosBuilder 学习笔记(1) CCBReader 解析.ccbi文件流程 CocosBuilder 学习笔记(2) .ccbi 文 ...
- Leetcode之二分法专题-367. 有效的完全平方数(Valid Perfect Square)
Leetcode之二分法专题-367. 有效的完全平方数(Valid Perfect Square) 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 ...
- Docker Machine的使用
前面两篇文章(<Asp.Net Core 发布到 Docker(Linux Centos 虚拟机,使用Dockerfile)> <Docker Compose的使用>),简单介 ...
- 迁移桌面程序到MS Store(10)——在Windows S Mode运行
首先简单介绍Windows 10 S Mode,Windows在该模式下,只能跑MS Store里的软件,不能通过其他方式安装.好处是安全有保障,杜绝一切国产流氓软件.就像iOS一样,APP进商店都需 ...
- 持续集成高级篇之Jenkins资源调度
系列目录 之前的示例我们主要关注点在于功能的实现,都是在一个节点的完成了.有了多个节点后,必须涉及到资源的调度问题.本节我们讲解在创建任务时与资源调度的有关选项以及一些平时没有注意到的但在生产环境需要 ...