习惯性拖博客,其实距离学习完burpsuite的基本使用已经有快一个月的时间了,还是现在才有时间写一写博客,与网络上来自五湖四海的伙伴们交流交流。
顺便一提,因为一部分内容是当时一边学习一边做的笔记,一部分是现在敲上去的,所以格式有些混乱,请见谅
《Burp Suite 实战指南》
Burp Suite是一个无需安装软件,下载完成后,直接从命令行启用即可。但Burp Suite是用
Java语言开发的,运行时依赖于JRE,需要提前Java可运行环境。
配置jvm内存大小:如果java可运行环境配置正确的话,正确运行时,会自动分配最大的可用内存。但在渗透测试过程中,如果有成千上万个请求通过Burp Suite,这时就可能会导致Burp Suite因内存不足而崩溃,从而会丢失渗透测试过程中的相关数据,这是我们不希望看到的。因此,我们可以在启动时,指定它使用的内存大小
——
java -jar-Xmx2048M /your_burpsuite_path/burpsuite.jar,这里制定了2G的内存,我们可以进行修改
Ipv6问题调试
Burp Suite是不支持IPv6地址进行数据通信的
java -jar-Xmx2048M -Djava.net.preferIPv4Stack=true /your_burpsuite_path/burpsuite.jar
通过-Djava.net.preferIPv4Stack=true参数的设置,告诉Java运行环境,使用IPv4协议栈进行
数据通信,IPv6协议将会被禁止使用。这个错误最常见于64位的windows操作系统上,使用
了32位的JDK
①IE设置
打开IE选项->连接->局域网设置->勾选 为LAN使用代理服务器->输入地址127.0.0.1 端口号8080 (burp suite默认分配代理地址和端口,可以进行相应的更改)
②FireFox设置
与IE的设置类似。
打开FireFox->按alt显示导航栏->点击工具->点击选项->在新打开的about:preferences中选高级->网络,此时我们将看到FireFox连接网络的设置选项
此后点击设置,
在弹出的连接设置对话框中,找到“http代理”,填写127.0.0.1,端口
填写8080,最后点击确认保存参数设置,完成FireFox的代理配置。
③chrome
在地址栏输入chrome://settings/ 找到“设置”,点击底部显示高级设置,随后按上述基本一致的步骤即可
如果想要对手机进行抓包,我们可以进行如下设置。
1.计算机与手机连上同一网段,可以是连同一个wifi或者由电脑使用wifi软件(360wifi,猎豹等等),让手机连上该wifi
2.在burpsuite中进行代理服务器的设置,详见下图操作
①通过ipconfig命令查看本机IP ②在burpsuite中选择建立一个与本机ip一样的listener ③随便挑一个暂未使用的端口
3.接下来手机连接wifi,选择使用代理,设置主机名同上,设置端口同上,之后就可以进行手机抓包了
forward:传输本次数据
drop:丢弃本次数据
Intercepton/off:拦截开启/关闭
Action:提供功能选项
当Burp Suite拦截的客户端和服务器交互之后,我们可以在Burp Suite的消息分析选项卡中查看这次请求的实体内容、消息头、请求参数等信息。
Raw:视图主要显示web请求的raw格式,包含请求地址、http协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。我们可以通过手工修改这些信息,对服务器端进行渗透测试。
params :视图主要显示客户端请求的参数信息、包括GET或者POST请求的参数、Cookie参数。渗透人员可以通过修改这些请求参数来完成对服务器端的渗透测试。
headers:视图显示的信息和Raw的信息类似,只不过在这个视图中,展示得更直观、友好。
Hex :视图显示Raw的二进制内容,你可以通过hex编辑器对请求的内容进行修改。
Burpproxy所拦截的消息可在Fitter(过滤器)中根据需要进行修改
所有流经burpproxy的消息都会在 http history中记录下来,我们可以通过历史选项卡,查看传输的数据内容,对交互的数据进行测试和验证,同时,我们可以通过右击来弹出菜单,发送内容到burp的其他组件进行处理(类似于Action的功能)
comment:对拦截的消息添加备注,在一次渗透测试中,你通常会遇到一连串的请求消息,为了便于区分,在某个关键的请求消息上,你可以添加备注信息。
Highlight的功能与Comment功能有点类似,即对当前拦截的消息设置高亮,以便于其他的请求消息相区分。
可选项配置Options
从界面上看,主要有以下几大板块
▪客户端请求消息拦截(Interceptclient requests)
▪服务器端返回消息拦截(intercept server responses)
▪服务器返回消息修改(response modification)
▪正则表达式配置(match and replace)
▪其他配置项(miscellaneous)
Burptarget组件主要包含站点地图、目标域、target工具三部分组成
帮助渗透测试人员更好地了解目标应用的整体状况、当前的工作涉及哪些目标域、分析可能存在的攻击面等
信息
目标域设置 Target Scope
应用场景
1.限制站点地图和Proxy历史中的显示结果
2.告诉Burp Proxy拦截哪些请求
3.Burp Spider抓取哪些内容
4.BurpScanner自动扫描哪些作用域的安全漏洞
5.在Burp Intruder和Burp Repeater中指定URL
站点地图 Site Map
在一次渗透测试中,通过浏览器浏览的历史记录在站点地图中的展现结果将自动在site map中呈现。
Site Map的左边为访问的URL,按照网站的层级和深度,树形展示整个应用系统的结构和关联其他域的url情况;右边显示的是某一个url被访问的明细列表,共访问哪些url,请求和应答内容分别是什么,都有着详实的记录。基于左边的树形结构,我们可以选择某个分支,对指定的路径进行扫描和抓取。
Target 工具的使用
主要包括以下部分:1.手工获取站点地图2.站点比较3.攻击面分析
①手工获取站点地图:
1.设置浏览器代理和burp proxy代理,并使之能正常工作
2.关闭拦截功能
3.手工浏览网页
这时,target会自动记录站点地图信息。
手工获取站点地图的方式有一个好处就是,我们可以根据自己的需要和分析,自主地控制访问内容,记录的信息比较准确。与自动抓取相比,则需要更长的时间,如果需要渗透测试的产品系统是大型的系统,则对于系统的功能点依次操作一遍所需要的精力和时间对渗透测试人员来说付出都是很大的。
②站点比较
对站点进行动态分析的利器,我们在比较帐号权限时经常使用到它。
当我们登陆应用系统,使用不同的帐号,帐号本身在应用系统中被赋予了不同的权限,那么帐号所能访问的功能模块、内容、参数等都是不尽相同的,此时使用站点比较,能很好的帮助渗透测试人员区分出来。
一般来说,主要有以下3种场景:
1.同一个帐号,具有不同的权限,比较两次请求结果的差异。
2.两个不同的帐号,具有不同的权限,比较两次请求结果的差异。
3.两个不同的帐号,具有相同的权限,比较两次请求结果的差异。
步骤:
1.首先我们在需要进行比较的站点上点击右键,找到站点比较的菜单“Comparesite maps”
2.由于站点比较是在两个站点地图之间进行的,所以我们在配置过程中需要分别指定Site Map1和Site Map2。通常情况下,Site Map 1 我们默认为当前会话。如图所示,点击【Next】。
3.这时我们会进入Site Map 1设置页面,如果是全站点比较我们选择第一项,如果仅仅比较我们选中的功能,则选择第二项。如下图,点击【Next】。如果全站点比较,且不想加载其他域时,我们可以勾选只选择当前域。
4.接下来就是Site Map 2的配置,对于Site Map 2我们同样有两种方式,第一种是之前我们已经保存下来的Burp Suite站点记录,第二种是重新发生一次请求作为Site Map2.这里,我们选择第二种方式。
5.如果上一步选择了第二种方式,则进入请求消息设置界面。在这个界面,我们需要指定通信的并发线程数、失败重试次数、暂停的间隙时间。
6.设置完Site Map 1和Site Map 2之后,将进入请求消息匹配设置。在这个界面,我们可以通过URL文件路径、Http请求方式、请求参数、请求头、请求Body来对匹配条件进行过滤。
7.设置请求匹配条件,接着进入应答比较设置界面。在这个界面上,我们可以设置哪些内容我们指定需要进行比较的
8.如果我们之前是针对全站进行比较,且是选择重新发生一次作为Site Map2的方式,则界面加载过程中会不停提示你数据加载的进度,如果涉及功能请求的链接较少,则很快进入比较界面。
③攻击面分析
步骤:
1.右键找到【Engagementtools】(交互工具),点击Analyze Target使用
2.在弹出的分析界面中,我们能看到概况、动态URL、静态URL、参数4个视图。
3.概况视图主要展示当前站点动态URL数量、静态URL数量、参数的总数、唯一的参数名数目,通过这些信息,我们对当前站点的总体状况有粗线条的了解。 4.动态URL视图展示所有动态的URL请求和应答消息,跟其他的工具类似,当你选中某一条消息时,下方会显示此消息的详细信息。
4.参数视图有上中下三部分组成,上部为参数和参数计数统计区,你可以通过参数使用的次数进行排序,对使用频繁的参数进行分析;中部为参数对于的使用情况列表,记录对于的参数每一次的使用记录;下部为某一次使用过程中,请求消息和应答消息的详细信息。
在使用攻击面分析功能时,需要注意,此功能主要是针对站点地图中的请求URL进行分析,如果某些URL没有记录,则不会被分析到。同时,在实际使用中,存在很点站点使用伪静态,如果请求的URL中不带有参数,则分析时无法区别,只能当做静态URL来分析。
Burp Spider的功能主要使用于大型的应用系统测试,它能在很短的时间内帮助我们快速地了解系统的结构和分布情况。
spider控制
Spider控制界面由Spider状态和Spider 作用域两个功能组成。
Spider 状态除了显示当前进度、传输情况、请求队列等统计信息外,还有Spider运行/暂停按钮与清空队列按钮,分别用来控制Spider是否运行和队列中的数据管理。而Spider作用域是用来控制Spider的抓取范围,从图中我们可以看到有两种控制方式,一种是使用上一节讲的Target Scope,另一种是用户自定义。
此处用户自定义作用域的配置与Target Scope的配置完全一致,具体使用方法请参数上一节Target Scope的配置。
Spider可选项设置
Spider可选项设置由抓取设置、抓取代理设置、表单提交设置、应用登陆设置、蜘蛛引擎设置、请求消息头设置六个部分组成。
BurpScanner的功能主要是用来自动检测web系统的各种漏洞,我们可以使用BurpScanner代替我们手工去对系统进行普通漏洞类型的渗透测试,从而能使得我们把更多的精力放在那些必须要人工去验证的漏洞上。
Scannr的扫描方式分为两种,主动扫描和被动扫描。
1.主动扫描(ActiveScanning)
当使用主动扫描模式时,Burp 会向应用发送新的请求并通过payload验证漏洞。这种模式下的操作,会产生大量的请求和应答数据,直接影响系统的性能,通常使用在非生产环境。它对下列的两类漏洞有很好的扫描效果:
① 客户端的漏洞,像XSS、Http头注入、操作重定向;
② 服务端的漏洞,像SQL注入、命令行注入、文件遍历。
对于第一类漏洞,Burp在检测时,会提交一下input域,然后根据应答的数据进行解析。在检测过程中,Burp会对基础的请求信息进行修改,即根据漏洞的特征对参数进行修改,模拟人的行为,以达到检测漏洞的目的。 对于第二类漏洞,一般来说检测比较困难,因为是发生在服务器侧。比如说SQL注入,有可能是返回数据库错误提示信息,也有可能是什么也不反馈。Burp在检测过程中,采用各个技术来验证漏洞是否存在,比如诱导时间延迟、强制修改Boolean值,与模糊测试的结果进行比较,已达到高准确性的漏洞扫描报告。
2. 被动扫描(PassiveScanning)
当使用被动扫描模式时,Burp不会重新发送新的请求,它只是对已经存在的请求和应答进行分析,这对系统的检测比较安全,尤其在你授权访问的许可下进行的,通常适用于生成环境的检测。一般来说,下列这些漏洞在被动模式中容易被检测出来:
①提交的密码为未加密的明文。
②不安全的Cookie的属性,比如缺少的HttpOnly和安全标志。
③cookie的范围缺失。
④跨域脚本包含和站点引用泄漏。
⑤表单值自动填充,尤其是密码。
⑥SSL保护的内容缓存。
⑦目录列表。
⑧提交密码后应答延迟。
⑨session令牌的不安全传输。
⑩敏感信息泄露,像内部IP地址,电子邮件地址,堆栈跟踪等信息泄漏。
⑪不安全的ViewState的配置。
⑫错误或者不规范的Content-type指令。
虽然被动扫描模式相比于主动模式有很多的不足,但同时也具有主动模式不具备的优点,除了前文说的对系统的检测在我们授权的范围内比较安全外,当某种业务场景的测试,每测试一次都会导致业务的某方面问题时,我们也可以使用被动扫描模式,去验证问题是否存在,减少测试的风险。
Scanner的具体步骤
1.被动扫描
在burpsuite专业版中,默认对拦截的所有站点进行被动扫描,我们可以再Target下的site map 选项卡中看到,图中所示的情况,两个红色方框分别表示了某站点存在的漏洞以及某个漏洞的具体详情。
我们可以在Scope中修改工作范围,方便我们进行针对性的分析工作
也可以在Scanner下的Live Scanner选项卡中调整我们的扫描策略,比如取消对所有站点的被动扫描
2.主动扫描
如图,我们可以通过多种方式对某一站点进行主动扫描,操作十分简单
随便通过一种方式进行主动扫描后,我们可以进入到如图选项卡中对扫描进度进行查看,图中显示扫描已完成,发现4个问题,一共收到了513个应答
双击这条记录之后我们便可以查看到详细的漏洞扫描报告了
工作原理:
Intruder在原始请求数据的基础上,通过修改各种请求参数,以获取不同的请求应答。每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的比对分析来获得需要的特征数据。
应用场景:
1. 标识符枚举 Web应用程序经常使用标识符来引用用户、账户、资产等数据信息。例如,用户名,文件ID和账户号码。
2. 提取有用的数据在某些场景下,而不是简单地识别有效标识符,你需要通过简单标识符提取一些其他的数据。比如说,你想通过用户的个人空间id,获取所有用户在个人空间标准的昵称和年龄。
3. 模糊测试很多输入型的漏洞,如SQL注入,跨站点脚本和文件路径遍历可以通过请求参数提交各种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。由于的应用程序的大小和复杂性,手动执行这个测试是一个耗时且繁琐的过程。这样的场景,您可以设置Payload,通过Burp Intruder自动化地对Web应用程序进行模糊测试。
测试步骤:
1. 确认Burp Suite安装正确并正常启动,且完成了浏览器的代理设置。
2. 进入Burp Proxy选项卡,关闭代理拦截功能。
3. 进行历史日志(History)子选项卡,查找可能存在问题的请求日志,并通过右击菜单,发送到Intruder。
4. 进行Intruder选项卡,打开Target和Positions子选项卡。这时,你会看到上一步发送过来的请求消息。
5. 因为我们了解到Burp Intruder攻击的基础是围绕刚刚发送过来的原始请求信息,在原始信息指定的位置上设置一定数量的攻击载荷Payload,通过Payload来发送请求获取应答消息。在默认情况下,所有的请求参数和cookie参数都会被设置为添加载荷
6.点击clear清除默认载荷(如果需要),圈定需要设置载荷的参数,点击add
7. 当我们打开Payload子选项卡,选择Payload的生成或者选择策略,默认情况下选择“Simplelist",当然你也可以通过下拉选择其他Payload类型或者手工添加。
8.之后点击startattack发动攻击,此时burp 会自动打开一个新的界面,包含执行攻击的情况,http状态码、长度等信息的结果。我们还可以选择其中某一次通信消息,查看请求消息和应答消息的详细
在很多时候,为了更好的标明应答消息中是否包含有我们需要的信息,通常在进行攻击前,会进行Options选项的相关配置,使用最多的为正则表达式匹配(Grep - Match)。
或者我们选择结果选项卡中的过滤器,对结果进行过滤筛选。同时,结果选项卡中所展示的列我们是可以进行指定的,我们可以在菜单columns进行设置。
最后选择我们需要的列,点击save按钮,对攻击结果进行保存。(也可以对保存对的内容进行设置
payload类型与处理
一共有18种
1.simplelist简单列表:通过配置一个字符串列表作为payload,也可以手工添加字符串列表或从文件加载字符串列表。
2.runtimefile运行时文件 :指定文件,作为相对应 Payload位置上的Payload列表。
运行时,Burp Intruder将读取文件的每一行作为一个Payload。
3.customiterator自定义迭代器
一款功能强大的Payload,它共有8个占位,每一个占位可以指定简单列表的Payload类型,然后根据占位的多少,与每一个简单列表的Payload进行笛卡尔积,生成最终的Payload列表。
例如,某个参数的值格式是
username@@password,则设置此Payload的步骤是:位置1,选择Usernames。接着,指定位置2,输入值@@最后指定位置3,选择Passwords。当我们开始攻击时,生成的Payload值如图所示:
4.charactersubstitution字符串替换
顾名思义,此种Payload的类型是对预定义的字符串进行替换后生成新的Payload。比如说,预定义字符串为ABCD,按照下图的替换规则设置后,将对AB的值进行枚举后生成新的Payload。
则A会替换成4,B会替换成8
5.casemodification大小写替换
生成规则有:①NOchange②To lower caser③To upper case ④To Propername首字母大写,其他小写 ⑤To ProperName 首字母大写,其他不改变
6.Recursivegrep 递归grep
此Payload类型主要使用于从服务器端提取有效数据的场景,需要先从服务器的响应中提取数据作为Payload,然后替换Payload的位置,进行攻击。它的数据来源于原始的响应消息,基于原始响应,在Payload的可选项设置(Options)中配置Grep规则,然后根据grep去提取数据才能发生攻击。
如,我在grep extract中设置取服务器端的EagleId作为新的Payload值。
点击 OK 后,便完成了payload 的设置
当发起攻击时,Burp会对每一次响应的消息进行分析,如果提取到了EagleId的值,则
作为Payload再发生一次请求。
7.illegalunicode不合法的unicode编码
在payloads里用指定的不合法Unicode编码替换字符本身,从这些Payload列表里产生出一个或者多个有效负荷。在尝试回避基于模式匹配的输入验证时,这个有效负荷会有用的
8.characterblocks字符块
这种类型的Payload是指使用一个给出的输入字符串,根据指定的设置产生指定大小的字符块,表现形式为生成指定长度的字符串。它通常使用了边界测试或缓冲区溢出。
9.number 数字类型
根据配置,生成一系列的数字作为Payload。
Type表示使用序列还是随机数,
From表示从什么数字开始,To表示到什么数字截止,
Step表示步长是多少,如果是随机数,则How many被激活,表示一共生成多少个随机数。
Base表示数字使用十进制还是十六进制形式,
Min integerdigits 表示最小的整数是多少,Max integer digits表示最大的整数是多少,
如果是10进制,则Minfractiondigits表示小数点后最少几位数,Max fraction digits表示小数点后最多几位数。
10.Dates日期类型
根据配置,生成一系列的日期。格式可以选择burp自己提供的样例格式,也可以自定义
11.bruteforcer暴力字典
此类payload生成包含一个指定的字符集的所有排列特定长度的有效载荷,通常用于枚举字典的生成
Character set表示生成字典的数据集,从此数据集中抽取字符进行生成。Min length表示生成Payload的最小长度,Max length表示生成Payload的最大长度。
12.Nullpayloads空类型
这种负载类型产生的Payload,其值是一个空字符串。在攻击时,需要同样的请求反复被执行,在没有任何修改原始请求的场景下此Payload是非常有用的。它可用于各种攻击,例如cookie的序列分析、应用层Dos、或保活会话令牌是在其它的间歇试验中使用。
13.characterfrobber字符frobber
这种类型的Payload的生成规律是:依次修改指定字符串在每个字符位置的值,每次都是在原字符上递增一个该字符的ASCII码。它通常使用于测试系统使用了复杂的会话令牌的部件来跟踪会话状态,当修改会话令牌中的单个字符的值之后,您的会话还是进行了处理,那么很可能是这个令牌实际上没有被用来追踪您的会话。
14.bitflipper bit翻转
对预设的Payload原始值,按照比特位,依次进行修改。
设置选项:
Operateon:指定对payload原始数据进行bit翻转,还是指定值进行bit翻转
Format oforiginal data 是指是否对原始数据的文本意义进行操作,还是应该把它当作ASCII十六进制
Select bitsto flip是指选择翻转的Bit位置。可以配置基于文本意义进行操作,或基于ASCII十六进制字符串进行翻转。
15.usernamegenerator用户名生成器
这种类型的payload主要用于用户名和email账号的自动生成
例如我设置了原始值为123456789@qq.com,然后执行payload生成器,其生成的payload值如图
16.ECB blockshuffler ECB加密块洗牌
这种类型的Payload是基于ECB加密模式的Payload生成器,通过改变分组数据的位置方式来验证应用程序是否易受到攻击。
17.extesion-generated生成插件
这种类型的Payload是基于Burp插件来生成Payload值,因此使用前必须安装配置Burp插件,在插件里注册一个Intruderpayload生成器,供此处调用。
18.copy otherpayload
这种类型的Payload是将其他位置的参数复制到Payload位置上,作为新的Payload值,通常适用于多个参数的请求消息中,它的使用场景可能是: 1.两个不同的参数需要使用相同的值,比如说,用户注册时,密码设置会输入两遍,其值也完全一样,可以使用此Payload类型。 2.在一次请求中,一个参数的值是基于另一个参数的值在前端通过脚本来生成的值,可以使用此Payload类型。它的设置界面和参数比较简单,如下图所示,其中Payload位置的索引值就是指向图中Payload set的值。
攻击模式
1.sniper 狙击手模式(只能使用一个payload位置)
使用一组payload集合,一次替换payload位置上被被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,通常用于测试请求参数是否存在漏洞。
2.batteringram攻城锤模式
它使用单一的Payload集合,依次替换Payload位置上被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,与狙击手模式的区别在于,如果有多个参数且都为Payload位置标志时,使用的Payload值是相同的,而狙击手模式只能使用一个Payload位置标志。
3.pitchfork 草叉模式
它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),遍历所有的Payload。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起两次攻击,第一次使用的Payload分别为A和C,第二次使用的Payload分别为B和D。
4.clusterbomb集束炸弹模式
它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),依次遍历所有的Payload。它与草叉模式的主要区别在于,执行的Payload数据Payload组的乘积。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起四次攻击,第一次使用的Payload分别为A和C,第二次使用的Payload分别为A和D,第三次使用的Payload分别为B和C,第四次使用的Payload分别为B和D。
可选项设置options
1.requestheaders请求消息头设置
这个设置主要用来控制请求消息的头部信息。
UpdateContent-Length header如果被选中,Burp Intruder在每个请求添加或更新Content-Length头为该次请求的HTTP体的长度正确的值。这个功能通常是为插入可变长度的Payload到模板的HTTP请求的主体的攻击中,如果没有指定正确的值,则目标服务器可能会返回一个错误,可能会到一个不完整的请求做出响应,或者可能会无限期地等待请求继续接收数据。
Set Connection:close如果被选中,表示Burp Intruder在每个请求消息中添加或更新值为“关闭”的连接头,这将更迅速地执行。
2.RequestEngine请求引擎设置
——主要用来控制burp intruder攻击
Numberof threads并发的线程数
Numberof retries on network failure网络失败时候重试次数
Pausebefore retry 重试前的暂停时间间隔
Throttlebetween requests请求延时
Starttime 开始时间
3.GrepMatch
——从响应消息中提取结果项
如果匹配,则在攻击结果中添加的新列中标明,便于排序和数据提取。
比如说,在密码猜测攻击,扫描诸如“密码不正确”或“登录成功”,可以找到成功的登录;在测试SQL注入漏洞,扫描包含“ODBC”,“错误”等消息可以识别脆弱的参数。
4.GrepExtract
这些设置可用于提取响应消息中的有用信息。对于列表中配置的每个项目,Burp会增加包含提取该项目的文本的新结果列。然后,您可以排序此列(通过单击列标题)命令所提取的数据。此选项是从应用数据挖掘有用的,能够支持广泛的攻击。
5.GrepPayloads——这些设置可用于提取响应消息中是否包含Payload的值
6.重定向(Redirections)——这些设置主要是用来控制执行攻击时Burp如何处理重定向
Repeater是一个重放攻击器。
我们可以在这里对数据包的参数进行修改,以此来进行请求与响应的消息验证分析。
用于检测数据样本随机性质量的工具,通常用于检测访问令牌是否可预测、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。
使用步骤:
1.确认burpsuite的正确运行,打开拦截
2.从burpproxy的历史日志中,寻找token或类似的参数(cookies等)点击右键弹出上下文菜单,点击 send to sequencer
3.进入burpsequencer的live cature面板,选中刚才发送过来的记录,点击 configure 配置需要分析的token 或参数
4.在弹出的参数配置对话框中,选中参数的值,点击 ok,完成参数设置
5.点击select live capture,开始进行参数值的获取
6.当抓取的参数值总数大于100时,点击【pause】或者【stop】,这时可以进行数据分析,点击【Analyze now】即进行数据的随机性分析。
7.等分析结束,可以看到分析结果的各种图表
8.我们也可以把获取的数据保存起来,下一次使用的时候,从文件夹加载参数,进行数据分析。
——点击savetokens保存数据
9.再次使用时,直接在manual load处,点击load… 加载数据即可
可选项设置
分析可选项设置的目的主要是为了控制token或者参数,在进行数据分析过程中,需要做什么样的处理,以及做什么类型的随机性分析。它主要由令牌处理(TokenHandling)和令牌分析(Token Analysis)两部分构成。
TokenHandling 令牌处理,主要控制令牌在数据分析中,如何被处理
Pad shorttokens at start / end 表示如果应用程序产生的令牌是具有可变长度的,那么这些令牌在数据分析前都需要被填充,以便于进行的统计检验。你可以选择是否填充在开始位置或每个令牌的结束位置。在大多数情况下,在开始位置填充是最合适。
Padwith 表示你可以指定将用于填充的字符。在大多数情况下,数字或ASCII十六进制编码的令牌,用“0”填充是最合适的。
Base64-decode before analyzing表示在数据分析是否进行base64解码,如果令牌使用了base64编码的话,则需要勾选此项。
TokenAnalysis 令牌分析
主要用来控制对数据进行随机性分析的类型,我们可以选择多个分析类型,也可以单独启用或禁用每个字符类型级和字节级测试。有时候,执行与启用所有分析类型进行初步分析后,再禁用某些分析类型,以便更好地了解令牌的特点,或隔离由样品表现任何不寻常的特性。
Count:分析在令牌内每个位置使用的字符的分布,如果是随机生成的样本,所用字符的分布很可能是大致均匀的。
Transitions:分析样品数据中的连续符号之间的变化。如果是随机生成的样品,出现在一个给定的位置上的字符是同样可能通过在该位置使用的字符中的任一项中的下一个标志的改变。
下面的几项设置是用于控制数据分析的字节级测试。启用字节级分析中,每个令牌被转换成一组字节,与设置在每个字符位置的字符的大小决定对的比特的总数
FIPS monobittest
测试分析0和1在每个比特位置的分配,如果是随机生成的样本,1和0的数量很可能是大致相等。FIPS测试正式规范假定样本总数为20000个,如果你希望获得的结果与该FIPS规范一样严格,你应该…
FIPS pokertest
该测试将比特序列划分为四个连续的、非重叠的分组,然后导出4个数,计算每个数字出现16个可能数字的次数,并采用卡方校验来评估数字的分布。如果样品是随机生成的,这个数字的分布可能是近似均匀的。
FIPS runstests
测试将具有相同值的连续的比特序列在每一个位置进行划分成段,然后计算每一个段的长度为1,2,3,4,5,和6以及6以上。如果样品是随机生成的,那么这些段的长度很可能是由样本集的大小所确定的范围之内。
FIPS longruns test
这个测试将有相同值的连续的比特序列在每一个位置进行划分成段,统计最长的段。如果样品是随机生成的,最长的段的数量很可能是由样本集的大小所确定的范围之内。
Correlationtest
比较每个位置具有相同值的令牌样本与每一个位置具有不同值的短令牌样本之间的熵,以测试在令牌内部的不同的比特位置中的值之间的任何统计学显著关系。如果样品是随机生成的,在给定的比特位置处的值是同样可能伴随着一个或一个零在任何其它位的位置。
——————————————————
暂时先写这些,后续会再添加一些图片说明