burp suite功能模块
- Send to spider 发送给爬虫模块
- DO a active scan 进行一次主动扫描
- Send to intruder 发送给爆破模块 (爆破账号密码等)
- Send to repearter 发送给重放模块(会在burpsuite中显示网页小窗口)
- Send to comparer 发送给比对模块
- Send to decoder 发送给解码模块(可以编码和解码)
- Request in browser 将请求在浏览器重放
Proxy 模块
Proxy—intercept模块
可以审计当前的请求,或者存储和发送到其他的页面进行其他的操作等
拦截功能主要由intercept选项卡中的Forward、Drop、Interception is on/off 和 Action
有的burpsuite 还包含 Open Browser 选项
主要功能:
- Forward: 表示将拦截的数据包或修改后的数据包发送至服务器端。即放出数据包
- Drop: 表示丢弃当前拦截的数据包
- Interception is on/off: on 表示开启拦截功能,off表示关闭拦截功能
- Action : 可以将数据包进一步发送到 Spider、Scaaner、Repeater、Intruder等功能组件做进一步测试,同时也包含改变数据包请求方式及其body的编码等功能
- Open Browser:自带的代理浏览器,不要设置代理
我们可以在Burpsuite 的消息分析选项中查看这次请求的实体内容、消息头、请求参数等信息,burp suite由四种消息类型显示数据包:Raw、Params、Headers 和 hex
- Raw:主要显示Web 请求的 raw 格式,以纯文本的形式显示数据包,包含请求地址、HTTP协议版本、主机头、浏览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。可以通过手动修改信息,对服务器端进行渗透测试
- Params:主要显示客户端请求的参数信息,包括 GET或者POST请求的参数、cookie参数。可以通过修改这些请求参数完成对服务器端的渗透测试。
- Hearders: 显示的是数据包中的头信息,以名称、值的形式显示数据包
- Hex:对应的是Raw中信息的二进制内容,可以通过Hex编辑器对请求的内容进行修改,在进行00截断时非常好用。
Proxy—http history模块
记录请求日志功能
Proxy—options模块
拦截的代理设置,proxy就是拦截当前设置的IP与port,可以添加、编辑、删除
Intercept Client Requests 模式
对客户端的请求进行拦截
- Intercept Client Requests 可以添加请求拦截规则设置模块,设置不拦截某些条件,例如不拦截请求地址后缀为 .php等,proxy会自动放行此数据包
- 设置只拦截 post请求,
Intercept ServerResponses 模式
是否拦截服务端的返回
Response Modification模式
修改返回值
翻译:
Match and Replace 模式
自动将请求包的指定内容替换成其他内容
- Add:添加
- Edit:编辑
- Remove:删除
- Up:向上
- Down:向下
- Type:筛选请求方式
- Match:被取代内容
- Replace:转换成某些内容
Target 模块
Target 起到一个辅助的作用,可以看到捕捉到的页面内的链接等
Repeater 模块
即重发模块,是一个手动修改、补发个别HTTP请求,并分析它们的响应工具,最大的用途就是能和其他burp suite工具结合起来用。可以将目标站点地图、burp proxy浏览记录、burp Intruder的攻击结果,发送到repeater上,并手动调整这个请求来对漏洞的探测或攻击进行微调。
repeater分析选项有4中:Raw、Params、Headers和Hex
- Raw:显示纯文本格式的消息。在文本面板的底部有一个搜索和加亮的功能,可以用来快速定位需要寻找的字符串,如出错信息。利用搜索栏左边的弹出项,能控制状况的灵敏度,以及是否使用简单文本或十六进制进行搜索
- Params:对于包含参数(URL查询字符串、cookie头或者消息体)的请求,Params选项会把这些参数显示为名字/值得格式,这样就可以简单得对他们进行查看和修改了。
- Headers:将以名字/值的格式显示HTTP的消息头,并且以原始格式显示消息体。
- Hex:允许直接编辑由原始二进制数据组成的消息
可以对数据进行加解密编码等
以及对数据的hex值修改,常用于渗透
Intruder 模块
即爆破模式,可以对Web应用程序进行自动化攻击,如通过标识符枚举用户名、Id和账号密码,模糊测试,SQL注入,跨站,目录遍历等。
工作原理是Intruder在原始请求数据的基础上,通过修改各种请求参数获取不同的请求应答。在每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(payload),在不同的位置进行攻击重放,通过应答数据的比对分析获得需要的特征数据,Burp Intruder通常用于以下场景:
- 标识符枚举:Web应用程序经常使用标识符引用用户、账号、资产等数据信息。例如:用户名、文件ID和账户号码
- 提取有用的数据:在某些场景下,不是简单的识别有效标识符,而是通过简单标识符提取其他有用的数据。例如:通过用户的个人空间ID获取所有用户在其个人空间的名字和年龄。
- 模糊测试:很多输入型的漏洞(SQL注入、跨站点脚本和文件路径遍历)可以通过请求参数提交各种测试字符串,并分析错误消息和其他一场情况,来对应用程序进行检测。受限于应用程序的大小和复杂性,手动执行这个测试是一个耗时且繁琐的过程,因此可以设置Payload,哦通过 Burp Intruder 自动化的对Web应用程序进行模糊测试
爆破有四种模式:Sniper、Battering ram、Pitchfork、Cluster bomb
Intruder模块→爆破模式选择
- Sniper:单变量爆破,使用单一的Payload组,它会针对每个位置设置的payload。这种攻击类型适用于对常见漏洞中的请求参数单独进行Fuzzing测试的情景。攻击中的请求总数是position数量和payload数量的乘积。
- Battering ram:发送给重放模块,使用单一的Payload组,会重复payload并一次性把所有相同的payload放入指定的位置中,这种攻击适用于需要在请求中把相同的输入放到多个位置的情景。请求的总数是payload组中的payload的总数。
- Pitch fork :多变量同时爆破(无循环) //即多个字典同时滚动,使用多个payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中,这种攻击类型非常适合在不同位置中需要插入不同但相似输入的情况,请求的数量是最小的payload组中的payload数量。
- Cluster bomb:多变量循环爆破(有循环) //即基于多个字典循环遍历,使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每个payload组合都会被测试一遍,这种攻击适用于在位置中需要不同且不想关或者未知输入攻击的情景。攻击请求的总数是各 payload组中的payload数量的乘积。
Sniper:狙击手单点模式,payload set 只能选择一个,也就是选择的字典。选择字典的数据只能一个一个爆破
Battering ram:将数据同时填充到多个指定位置,payload set 也只能选择一个。选择字典的数据同时填充到两个位置
Pitchfork:将每个字典逐一对称匹配,payload set 可以选择2个。比如说两个有变量 name和pwd,两个变量同时替换字典,但name用字典1遍历,pwd用字典2遍历。如果两个payload行数不一致的话,取最小值进行测试。
Cluster bomb:将每个字典逐一交叉匹配,payload set 可以选择2个。也就是将name替换为字典1中的参数1,然后pwd遍历字典2,然后将name替换为字典1中的参数2,然后pwd遍历字典2……
Spider模块
帮助我们了解系统结构,Spider爬取的内容将在Target中展示,界面左侧为一个主机和目录树,选择具体某一个分支即可查看对应的请求和响头
Decoder模块
是burp中自带的编码解码及散列转换的工具,能对原始数据进行各种编码格式和散列的转换
我们还可以在Decoder界面进行多次编码、解码的转换
对编码解码而言
- 目前支持 URL、HTML、BASE64、ASCII、十六进制、八进制、二进制和GZIP
Hash散列支持
- SHA 、SHA-224、SHA-256、SHA-384、SHA-512、MD2、MD5 格式的转换
User option模块 解决HTTP返回信息中的乱码问题
Comparer 模块
在 burp suite中主要提供一个可视化的差异化对比功能,来对比分析两次数据之间的区别,使用的场合有:
- 枚举用户的过程中,对比分析登录成功和失败时,服务端服务端反馈结果的区别
- 使用Intruder 进行攻击时,对于不同的服务端响应,可以很快分析出两次响应的区别在哪
- 进行SQL注入的盲注测试时,比较两次响应消息的差异,判断响应结果与注入条件的关联关系
使用Comparer时有两个步骤,先是数据加载,然后是差异分析
数据加载的常用方式:
- 从其他burp工具通过上下文菜单转发过来
- 直接粘贴
- 从文件里加载
加载完毕后,如果选择两次不同的请求或应答消息,则下发的比较按钮将被激活,此时可以选择文本比较或字节比较
Sequencer 模块
是一种分析数据样本随机性质量的工具。可以用它测试应用程序的会话令牌(Session token)、密码重置令牌是否可预测等场景,通过Sequencer 的数据样本分析,能很好的降低这些关键数据被伪造的风险
Sequencer 主要由信息截取(Live Capture)、手动加载(Manual Load)和选项分析(Analysis Options)三个模块组成