首发于 渗透测试

【Burp Suite实战指南】【定期更新】

写在前面的话

这是一个手册,在我的 CSDN博客 里面有目录,更新的时间会比知乎快,大家想知道获取最新的更新情况建议关注的 我的博客

Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。

在渗透测试中,我们使用Burp Suite将使得测试工作变得更加容易和方便,即使在不需要娴熟的技巧的情况下,只有我们熟悉Burp Suite的使用,也使得渗透测试工作变得轻松和高效。

Burp Suite是由Java语言编写而成,而Java自身的跨平台性,使得软件的学习和使用更加方便。Burp Suite不像其他的自动化测试工具,它需要你手工的去配置一些参数,触发一些自动化流程,然后它才会开始工作。

Burp Suite可执行程序是java文件类型的jar文件,免费版的可以从 免费版下载地址 进行下载。 免费版的Burp Suite会有许多限制,很多的高级工具无法使用,如果您想使用更多的高级功能,需要付费购买专业版。(或者破解版哈哈哈哈哈)

使用Burp Suite的小技巧

中文乱码问题:在User options --> Display --> HTTP Message Display 设置成支持中文的字体即可


持续重放请求:Intruder模块 --> Numbers 模式 (选择不影响结果的参数进行爆破,达到持续重放)

模拟 DOS 攻击:Intruder模块 --> Options选项卡 --> 线程999、失败重试次数20、重试暂停0


生成HTTP文件 :①.paste from file 。 ②. Engagement tools --> Generate CSRF PoC

一.Proxy模块:截取消息

1.Intercept选项卡 :拦截请求

  1. Forward:发送请求消息到服务端
  2. Drop:丢掉当前请求消息
  3. Intercept is on :开启拦截请求消息。
  4. Intercept is off :关闭拦截。
  5. Action:除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外;还可以一些请求消息的修改,比如改变GET或者POST请求方式、改变请求body的编码;也可以改变请求消息的拦截设置,如不再拦截此主机的信息、不再拦截此IP地址的消息、不再拦截此种文件类型的消息、不再拦截此目录的消息;也可以指定针对次请求消息拦截它的服务器端返回消息。
  6. Comment:对请求消息添加备注
  7. Highlight:对请求消息设置高亮的颜色备注

1.1)消息分析选项视图

  1. Raw:实体内容。显示WEB请求的raw格式,包含请求地址、http协议、主机头、浏览器信息、 Accept可接受的内容类型、字符集、编码方式、Cookie等。
  2. Params:请求参数。显示客户端请求的参数信息:包括GET/POST请求的参数、Cookie参数等。
  3. Headers:消息头。与Row信息类似,只是展示的更直观。
  4. Hex:16进制编码。显示Raw的二进制内容。

2.http history选项卡:记录历史请求消息和响应内容

  1. 单击历史消息,在详细详情块中显示此条消息的文本详细信息
  2. 双击历史消息,弹出此条消息的详细对话框

1.【Previous】:浏览上一条历史消息 2.【Next】:浏览下一条历史消息 3.【Action】:修改row的请求参数后,可通过此按钮将消息发送到Burp的其他模块

2.1)筛选过滤器:过滤不符合规则的历史消息

  1. Filter by request type :请求消息类型过滤。①.仅显示当前作用域。②.仅显示有服务器响应。 ③.仅显示带有请求参数
  2. Filter by MIME type:根据服务器返回的文件类型过滤。①.HTML。②.Script。③.XML。 ④.CSS。⑤.其他文本。⑥.图片。⑦.Flash。⑧.二进制文件
  3. Filter by status code:根据服务器端返回的HTTP状态码过滤:①.2XX,成功。②.3XX,重定向。 ③.4XX,客户端错误。④.服务器错误
  4. Filter by search term:根据查找条件过滤。①.正则表达式。②.大小写敏感。③.否定查找
  5. Filter by file extension:根据文件类型过滤。①.显示。②.隐藏
  6. Filter by annotation:按照注释过滤。①.仅显示注释的消息。②.仅显示高亮的消息。
  7. Filter by listener:按照监听端口过滤。

2.2)历史记录列表:记录了每一条请求消息和响应消息

请求序列号、请求协议和主机名、请求的方式、URL路径、请求参数、用户是否编辑过消息、服务 器端返回的HTTP状态码、消息长度、服务器返回的文件类型、文件类型、标题、注释、SSL、 IP、Cookie、时间、监听的端口

2.3)消息详情:查看具体消息的内容

  1. 请求消息的raw格式内容、参数、请求头、Hex格式
  2. 响应消息的Raw格式内容、请求头、Hex格式、HTML格式、渲染页面
  3. 查找内容:“+”提供了①.基于正则的查找。②.区分大小写。③.当文本改变自动滚屏的设置。

3.WebSocket History选项卡:是HTTP历史的一个分支

使用方式与http history类似,唯一的区别是,记录通信方式不同的历史消息。

4.option 选项卡:对请求消息进行控制和处理

4.1)Proxy Listeners:对截取数据流量的监听设置

1.【add】: 1.1)绑定:①.端口号。②.IP地址(本地回路、所有接口、指定地址) 1.2)请求处理:①.端口重定向。②.主机名/域名重定向。③.强制使用SSL。④.隐形代理(应用于不走代 理,却使用了HTTP协议进行通信的客户端,有时候需要配合BP的Project options设置中的Hostname Resolution设置。有时候客户端发送的请求中是不标准的,比如不包含host请求头,这时需要配合主机重定 向和端口重定向。如果胖客户端程序的请求是访问多个域名和端口的话,这就意味着bp将这些请求转发到一个 目标服务器上是错误的,这时需要使用多个loopback模式监听。)(DNS劫持) 1.3)证书:①.使用自签名证书。②.CA证书。③.生成与特定的主机名CA签发的证书。④.使用加载的证 书。 2.【Edit】:编辑代理。 3.【Remove】:移除代理。

4.2)Intercept Client Requests:拦截请求消息的设置

intercept request based on the follow rules:符合规则的都被拦截,自上而下进行。

1.【Add】:添加一条规则, 1.1)Boolean opertor:当前规则与其他规则的共存方式【AND | OR】 --and 必须满足。or 可满足可不满足 1.2)Match type:请求消息的匹配类型,可以基于域名、IP地址、协议、请求方法、URL、文件类 型、参数, cookies, 头部或者内容, 状态码, MIME类型, HTML页面的title等。 1.3)Match relationship:对匹配类型进行指定或者排除。 1.4)Match condition:匹配关键字 2.【Edit】:编辑规则 3.【Remove】:删除规则 4.【Up】:调节规则向上移动 5.【Down】:调节规则向下移动

Automatically fix missing or superfluous new lines at end of request:对修改后的请求消 息,自动修复丢失或多余的新行。

Automatically update Content-Length header when the request is edited:对修改后的 请求消息,自动修改Content-Length消息头部为对应的值。

4.3)Intercept Server Responses:拦截响应消息的配置

Automatically update Content-Length header when the response is edited:对修改后的 响应消息,自动修改Content-Length消息头部为对应的值。

其他功能参考客户端请求拦截配置

4.4)Response Modification:响应消息修改的设置

  1. Unhide hidden form fields:显示Form表单中的隐藏字段
  2. Prominently highlight unhidden fields:高亮显示Form表单中的隐藏字段
  3. Enable disabled form fields:使form表单中disable属性失效,变成可输入域
  4. Remove input field length limits:移除输入框的长度限制
  5. Remove JavaScript form Validation:移除JavaScript验证
  6. Remove all JavaScript:移除所有的JavaScript
  7. Remove tags:移除标签
  8. Covert HTTPS links to HTTP:转换HTTPS超链接为HTTP链接。
  9. Remove secure flag from cookies:移除所有cookie中的安全标志

4.5)Match and Replace:对消息用正则匹配,对匹配内容进行替换

1.【add】:添加规则 1.1)Type:请求和返回消息的消息头,消息体、请求参数名、请求参数值、请求的第一行 1.2)Math:匹配规则,支持正则 1.3)Replace:替换的内容 1.4)Comment:注释 2.【Edit】:编辑规则 3.【Remove】:删除规则 4.【Up】:调节规则向上移动 5.【Down】:调节规则向下移动

4.6)SSL Pass Through

  1. Automatically add entries on client SSL negotiation failture:当使用HTTPS时CA证书不管 用,则自动将目标URL添加到SSL直接连接。
  2. 直连的方式需要配置,在BurpSuite实战指南的37页。

4.7)其他:设置BP一些特殊的细节,用来处理特别的问题和情况。

  1. Use HTTP/1.0 in requests to server :指定HTTP1.0协议与服务器进行通信。
  2. Use HTTP/1.0 in responses to client:指定响应消息用HTTP1.0的协议进行反馈。
  3. Set responce header "Connection: close":设置响应头为"Connection: close",阻止HTTP 管道攻击。
  4. Strip Proxy-* headers in incoming requests:清除消息头中的代理服务器信息。
  5. Unpace gzip / deflate in requests:解压在请求消息中的消息体
  6. Unpace gzip / deflate in responses:解压在响应消息中的消息体
  7. Disable web interface at burp :禁用 burp
  8. Allow requests to web interface using fully-qualified DNS hostnames:允许通过域名或 主机名访问Burp Suite
  9. Suppress Burp error messages in browser:不在浏览器中显示Burp的错误,默认显示
  10. Disable logging to history and site map:禁用日志记录历史消息和站点地图。
  11. Don't send items to Proxy history or other Burp tools:禁止发送项目到代理历史和其他其 他Burp的工具
  12. Don't send items to Proxy history or other Burp tools,if out of scope:如果超过范围, 禁止发送项目到代理历史和其他其他Burp的工具
  13. Enable interception at startup:配置拦截设置:①.总是生效。②.总是失效 。③.从上一次 的 Burp Suite中恢复

二.Target模块:自动记录和分析站点信息

1.Site map选项卡:记录浏览信息,包含每一个请求和响应的详细信息

灰色没访问过的,黑色是访问过的

1.1)左:访问的站点,按照照网站的层级和深度,树形展示整个应用系统的结构和关联其他域的url情况。

  1. 可以对指定的站进行爬虫:Spider this host
  2. 可以对指定的站进行扫描:Actively scan this host
  3. 将站点加入目标站点中:Add to scope

1.2)中:某一个url被访问的明细列表,比如访问了那些URL,还有详细的请求和响应。

1.3)右:这个站点存在的疑似漏洞。

2.Scope选项卡:站点设置

2.1)Target Scope:控制拦截请求,指定爬取对象,指定扫描站点,爆破指定站点。

  1. Use advanced Scope-control:使用高级的站点控制。默认是指定一个URL的前缀的拦截规则。

允许规则

1.【Protocol】:协议。Any、HTTP、HTTPS 2.【Host or IP range】:域名或IP地址。 3.【Port】:端口。 4.【File】:文件名。

排除规则

3. 使用

3.1)手工获取站点地图:需要开启浏览器代理、Burp的正常监听、以及设置Intercept is off 。通过手动浏览站点,Burp自动记录的方式获取站点地图。适合中小型系统。

3.2)站点比较(Compare site maps):比较的是权限

  1. 同一个帐号,具有不同的权限,比较两次请求结果的差异。
  2. .两个不同的帐号,具有不同的权限,比较两次请求结果的差异。
  3. 两个不同的帐号,具有相同的权限,比较两次请求结果的差异。

3.3)攻击面分析(Analyze target):分析每一个站点所包含的URL信息

3.4)通过添加过滤器(Filter)来过滤非目标站点

  1. 将目标站点添加到Scope:在"Target" - "Site map"区域中, 用鼠标右键单击目标站点, 然后选 择"add to scope",此时Burp会生成一个正则表达式,并自动添加到"Target"-" Scope"中、
  2. 使用过滤器Filter: 在"Target"-"Sitemap"中,Filter可以自由选择过滤类型,以便我们进行查 看。单击"Filter",选择"Show only in-scope items", 只显示范围内的列表,即可进行过滤。

三.Spider模块:爬取大型网站的信息

1.Control:爬虫控制

1.1)Spider Status:控制Spider是否运行和队列中的数据管理

显示当前进度、传输情况、请求队列、有Spider运行/暂停按 钮与清空队列按钮

1.2) Spider Scope:控制爬虫的抓取范围

  1. 使用与站点地图一致的范围
  2. 使用自定义范围:与Target Scope 的配置完全一致

2.Option:爬虫的配置

2.1)Crawler Setting:抓取设置

  1. Check robots.txt:检查robots.txt 文件
  2. Detect custom “not found” response:检测404应答。
  3. Ignore links to non-text content:忽略内容为空的链接
  4. Request the root of all directories:爬取根目录下 所有文件和目录
  5. Make a non-parameterized request to each dynamic page:对每一个动态页面发送无参数 请求
  6. Maximun link depth:最大链接深度
  7. Maximun parameterized request per URL:最大URL请求参数的数目

2.2)Passive Spidering:被动爬取,不与服务器发生交互

  1. Passively spider as you browse:勾选则表示被动爬取,不发送新的请求。
  2. Link depth to associate with Proxy request :控制代理的链接深度。0表示无限深。

2.3)Form Submission:表单提交,用来匹配和自动提交表单内容

  1. individuate forms by :个性化表单。有Action URL、 method、fields、values。 2. Don't submit forms:当抓到表单时,不提交表单
  2. Prompt for guidance:当抓到表单时,手动提交表单
  3. Automatically submit using the following rules to assign text field values:使用建立的 规则去自动填充表单的值。

1.【Add】:添加一个控件输入的规则 1.1)Match type :完全匹配和正则表达式匹配 1.2)Filed name:表单控件的name 1.3)Filed value:表单控件的value 2.【Edit】:编辑规则 3.【Remove】:删除 4.【Up】:上移 5.【Down】:下移

Set unmatched fileds to :没有设置规则的控件值,统一为某个值

Iterate all values of submit fields - max submissions per form:迭代提交字段的所有值-每 个表单的最大提交数

2.4)Application Login:爬虫的登录页面配置

  1. Don't submit login forms:不提交登录
  2. Prompt for guidance:手动提交
  3. Handle as ordinary forms:作为表单提交,这里就会使用2.3)的表单配置。
  4. Automatically submit these credentials:自动提交定义好的用户名和密码

2.5)Spider Engine:爬虫引擎

  1. Number of threads:爬虫的线程
  2. Number of retries on network failure:连接失败时重连的次数
  3. Pause before retry(milliseconds):重连间隔时间
  4. Throttle between requests(milliseconds):请求之间的间隔时间
  5. Add random variations to throttle:间隔时间增加随机值

2.6)Request Headers:爬虫请求头的设置

  1. Use Http version 1.1:使用HTTP 1.1协议进行连接
  2. Use Referer header:使用引流头

1.【add】:添加一个请求头 2.【Edit】:编辑 3.【Remove】:删除 4.【Up】:上移 5.【Down】:下移

四.Scanner模块:自动检测普通漏洞

需要配置Proxy模块、浏览器代理、Target的站点地图

1.基本使用步骤

  1. BP正常启动+设置浏览器代理
  2. Intercept is off + 手动浏览目标站点
  3. 浏览时,Scanner自动扫描请求,并检测漏洞
  4. 在站点地图,针对目标站点,右键选择Actively scan this host进行域扫描
  5. 在Scanner选项卡中查看进度
  6. 如果对目标站点的目录进行扫描,还可以有更多的设置。
  7. 在Scanner选项卡中查看进度
  8. 定义作用域进行扫描
  9. 在Live Active Scanning控制块中,选择 Use suite scope。扫描目标域
  10. 再次使用的话,自动漏洞分析
  11. 站点地图显示漏洞信息
  12. 将漏洞详细发送到Repeater模块进行检测
  13. 只要有扫描就会有漏洞信息出现
  14. 扫描完成后,右键,issues-->report issues for this host 即可导出漏洞报告。

2.扫描方式

2.1)主动扫描:Burp主动加载payload并且发送新的请求,检测扫描出的漏洞。

客户端的漏洞,像XSS、Http头注入、操作重定向; 服务端的漏洞,像SQL注入、命令行注入、文件遍历。

2.2)被动扫描:不发送新的请求,只对已经存在的请求进行扫描检测。

  1. 提交的密码为未加密的明文。
  2. 不安全的Cookie的属性,比如缺少的HttpOnly和安全标志。
  3. cookie的范围缺失。
  4. 跨域脚本包含和站点引用泄漏。
  5. 表单值自动填充,尤其是密码。
  6. SSL保护的内容缓存。
  7. 目录列表。
  8. 提交密码后应答延迟。
  9. session令牌的不安全传输。
  10. 敏感信息泄露,像内部IP地址,电子邮件地址,堆栈跟踪等信息泄漏。
  11. 不安全的ViewState的配置。
  12. 错误或者不规范的Content-type指令。

3.扫描报告

4.选项卡

4.1)Issue activity

显示漏洞的相关信息

4.2)Scan queue

会显示扫描的进度、问题总数、请求数和错误统计等信息,可以选中某个记录,在右击的弹出菜单 中,对扫描进行控制。比如取消扫 描、暂停扫描、恢复扫描、转发其他Burp组件等。

4.3)Results

自动显示队列中已经扫描完成的漏洞明细。可以选中漏洞。在弹出的右击菜单中,依次选择Set severity, 对漏洞的等级进行标识。也可以选择Set confidence,对漏洞是否存在或误报进行标 注。

4.4)Live Scanning

对请求的域、路径、IP地址、端口、文件类型 进行控制

4.5)Issue definitions

可看漏洞的名字、严重级别、描述、防范等

4.6)Options:对扫描进行配置

  1. Attack Insertion Points:攻击插入点设置 1.1)对参数的值进行漏洞检测:比如有URL请求参数、Body参数(比如form表单的值,上传文件、 XML参数、JSON参数)、Cookie参数、参数的名称和个数(通过增加参数个数或者增加参数来验证漏洞)、 Http Header信息(通过对header信息的篡改来验证漏洞)、AFM编码(对flash通信漏洞的验证)、 REST风格的参数。 1.2)改变参数的位置验证漏洞:共有URL to body 、URL to cookie、Body to URL、Body to cookie、Cookie to URL、Cookie to body 六种方式。 1.3)use nested insertion points:嵌套插入。 1.4)参数跳过:也可以指定哪些参数进行跳过,不需要进行漏洞验证。有服务器端参数跳过和所有参数 均跳过。
  2. Active Scanning Engine:主动扫描引擎设置。 2.1)控制主动扫描时的线程并发数、网络失败重试间隔、网络失败重试次数、请求延迟、是否跟踪重定 向。3. Active Scanning Optimization:主动扫描优化设置。优化扫描的速度和准确率。 3.1)Scan speed:扫描速度。分快速、普通、彻底三个选项。 3.2)Scan accuracy:增加对漏洞的测试次数。分为最小化假阴性(Minimize false negatives)、普通、最小化假阳性(Minimize false positives)。 3.3)Use intelligent attack selection :智能攻击选择。使用此选项可加速扫描,并降低在 提升扫描速度的同时会导致漏报率上升的风险。 4.Active Scanning Areas:主动扫描范围设置 SQL注入 -可以使不同的测试技术(基于误差,时间延迟测试和布尔条件测试),并且也 使检查所特有的单独的数据库类型(MSSQL,Oracle和MySQL的)。 操作系统命令注入 - (信息通知和盲注)。 反射式跨站点脚本 存储的跨站点脚本 文件路径遍历 HTTP头注入 XML/ SOAP注入 LDAP注入 URL重定向 http消息头可操纵 服务器的问题 5.Passive Scanning Areas :被动扫描范围设置 Headers、 Forms、 Links、 Parameters、 Cookies、 MIME type、Caching、 敏感信息泄露、 Frame框架点击劫持、 ASP.NET ViewState

五.Intruder模块:自动化测试

在原始请求数据之上,通过自动化修改各种参数的值,获取不同的响应,从而得到数据。

1.Intruder基本使用步骤

  1. Burp Suite正常启动和设置好浏览器代理
  2. 关闭代理拦截功能
  3. 在历史日志(History)子选项卡中,查找可能存在问题的请求日志,发送到Intruder。 4. 在Intruder 选项卡,打开Target和Positions子选项卡,会看到上一步发送过来 的请求消息。
  4. 默认情况下,Burp Intruder会对请求参数和Cookie参数设置成Payload position,可通过右侧 对攻击的位置进行添加、清除、自动、更新。
  5. 在Payload 子选项卡,设置攻击的配置
  6. 设置完毕后,再回到Position界面,点击【Start attack】,发起攻击!
  7. 此时,Burp会自动打开一个新的界面,包含攻击执行的情况、Http状态码、长度等结果信息。
  8. 可以选择其中的某一次通信信息,查看请求消息和应答消息的详细。
  9. 为了更好的标明应答消息中是否包含有我们需要的信息,通常在进行攻击 前,会进行Options选 项的相关配置,使用最多的为正则表达式匹配(Grep - Match)。或者,我们使用结果选项卡中 的过滤器,对结果信息进行筛选。
  10. 结果选项卡中所展示的列我们是可以进行指定的,我们可以在菜单Columns进行 设置。
  11. 最后,选择我们需要的列,点击【Save】按钮,对攻击结果进行保存。保存之前我们也可以对保 存的内容进行设置。

2.Payload选项卡:对自动化攻击的配置

2.1)Payloads:对攻击点数量以及类型的设置

1.payload set:攻击点数量的设置,取决于之前在position中设定的攻击点。 2.Payload type:攻击类型

  1. Simple list:简单列表。配置字符串列表作为攻击,可以手工添加或者从文件加载,也可以BP定 义好的列表(包括XSS脚本、CGI 脚本、SQL注入脚本、数字、大写字母、小写字母、用户名、密 码、表单域的字段名、 IIS文件名和目录名等等)。
  2. Runtime file:运行文件。用一个文件来作为攻击列表。运行时,Burp Intruder将 读取文件的 每一行作为一个Payload。 3. Custom iterator:自定义迭代器。对不同的攻击位置,选定不同的简单列表,以笛卡尔的交叉方 式进行攻击。
  3. Character substitution:字符串替换。根据替换规则,将定义好的攻击列表进行替换,用替换 的攻击列表进行攻击。
  4. Case modification:大小写替换。将定义好的攻击列表进行大小写替换。No change(不改 变,使用原始字符串)。、To lower case(转为小写字母)、To upper case(转为大写字 母)、To Propername(首字母大 写,其他小写)、To ProperName(首字母大写,其他不改 变)
  5. Recursive grep:从服务器的响应中,根据正则提取信息作为攻击列表,进行攻击。
  6. Illegal Unicode:非法字符。用相应攻击的非法Unicode编码替换攻击列表。在BurpSuite实战 指南的95页。
  7. Character blocks:字符块。根据Base String的字符串,生成Min Length 和Max Length 之间 数量长度的字符串。
  8. Character blocks:字符块。根据Base String的字符串,生成Min Length 和Max Length 之间 数量长度的字符串。
  9. Number:数字类型。可以设置从几到几的数字,有递增和随机两种类型。并且可以设置数字的 十进制或者16进制等。
  10. Dates:日期类型。设置方式与数字类型类似。自定义日期格式:【| 格式 | 样例| |--------|-------- | | E | Sat | | EEEE | Saturday | | d | 7 | | dd | 07 | | M | 6 | | MM | 06 | | MMM | Jun | | MMMM| June | | yy| 16 | | yyyy| 2016 |】
  11. Brute force:暴力字典。根据Character set设置的字符串,列举生成指定长度的字符串作为攻 击列表。
  12. Null payloads:空字符串攻击。可用于反复请求。
  13. Character frobber:依次修改指定 字符串在每个字符位置的值,每次都是在原字符上递增一个 该字符的ASCII码。
  14. Bit flipper:对预设的Payload原始值, 按照比特位,依次进行修改。
  15. Username generator:用户名生成器。用于用户名和email帐号 的自动生成。
  16. ECB block shuffle:是基于ECB加密模式的 Payload生成器。
  17. Extension-generated:基于Burp插 件来生成Payload值。
  18. Copy other payload:Payload复制。将其他位置的参数复制到 Payload位置上,作为新的 Payload值。通过另外一个攻击点来配置指定攻击点的值。

2.2)Payload Options :默认为Simple list类型,如果设詈为Payload type, 此区域将会随之变化。

2.3)Payload Processing :可以有效地对字符串进行处理(字典的每一行),可以进行MD5加密、字符串截取、加入前缀、后缀等操作。

2.4)Payload Encoding 在进行请求时,可以对针对某些字符进行URL转码。

3.Positions:攻击点位置设置

使用一对 §字符来标记出Payload的位置

3.1)Attack type:攻击类型

  1. Sniper:狙击手模式。使用一组攻击列表,依次替换Payload位置上被§标志的文本。(一次攻击 只能使用一个Payload位置)
  2. Battering ram:攻城锤模式。使用单一的攻击列表,依次一次性替换,全部Payload位置上 被§ 标志的文本。
  3. Pitchfork:草叉模式。使用多组攻击列表,对Payload位置进行攻击列表一对一对应方式进行攻 击。
  4. Cluster bomb:集束炸弹模式。使用多组攻击列表,对Payload位置进行攻击列表一对多对应方 式进行攻击。
  1. 【Add §】 :添加一个攻击点位置
  2. 【Clear §】: 清除所有Payload位置标志或者清除选中的Payload位置标志
  3. 【Auto §】: BP自动设置位置。目前Burp支持自动选择的参数类型有: 1.URL请求参数 2.Body参 数 3.cookie参数 4.复合型参数属性,比如文件上传时候的文件名 5.XML数据 6.JSON数据 虽然Burp默 认是支持自动标志这些类型的参数作为Payload位置,但如果是针对于像XML或JSON的节点属性值的,还是需 要手工指定。
  4. 【Refresh】 : 刷新消息内容中带有颜色的部分。
  5. 【Clear】: 清除消息编辑器中所有内容。

4.Options:攻击前配置

4.1)Request Headers:控制请求消息的头部信息。

  1. Update Content-Length header:Burp Intruder为每个请求添加或更新 Content-Length头 为该次请求的HTTP体的长度正确的值。
  2. Set Connection: close:Burp Intruder为每个请 求消息中添加或更新值为“关闭”的连接头,这 将更迅速地执行。

4.2)Request Engine:设置攻击的引擎

  1. Number of threads:攻击线程。
  2. Number of retries on network failure :网络失败时候重试次数
  3. Pause before retry:重试前的暂停时间间隔(毫秒)
  4. Throttle between requests :请求延时(毫 秒)。可以固定也可以随机。
  5. Start time:开始时间,启动攻击之后多久才开始执行。可控制时间。

4.3)Attack Results:攻击结果信息显示

  1. Store request:保存请求消息
  2. Store responses:保存响应消息
  3. Make unmodified baseline request:发出未修改的基线请求
  4. Use denial-of-service made(no results):使用拒绝服务(无结果)
  5. Store full payloads:保存所有攻击

4.4)Grep Match:从响应消息中提取内容,如果找到,则在新列中显示。用在结果筛选。

  1. Match type:匹配表达式还是简单的字符串。
  2. Case sensitive match:是否大小写敏感。
  3. Exclude HTTP headers:是否包含http消息头。

4.5)Grep Extract:提取响应消息中的有用信息,如果找到,则在新列中显示。

4.6)Grep Payloads:提取响应消息中是否包含Payload的值。

  1. Match against pre-URL-encoded payloads:如 果你在请求消息时配置了 URL-encode payloads ,则这里表示匹配未编码之前的 Payload值,而不是转码后的值。

4.7)Redirections:控制执行攻击时,Burp如何处理重定向。

Never:从不 On-site only:仅同站点 In-scope only:仅同站点群 Always:永远 process cookies in redirections:在重定向中处理cookies

5.Intruder 攻击和结果分析

5.1)菜单区

1.Attack菜单

  1. pause : 暂停攻击
  2. resume : 恢复攻击
  3. repeat : 再次攻击 2.Save菜单
  4. Attack : 保存当前攻击的副本,下次可以从此文件进 行再次攻击
  5. Results table : 保存攻击的结果列表
  6. Server responses: 保存所有的服务器响应消息
  7. Attack configuration : 保存当前的攻击配置信息。 3.Columns菜单 控制消息记录区的显示列

5.2)过滤器

可以通过查询条件、服务器响应的状态码、注释过Payload执行结果消息记录 区的信息进行过 滤。

5.3)结果列表 : 记录攻击时请 求和响应的所有信息

5.4)请求/响应消息区

有效的应答通常可以通过以下中的至少一个存在差异: 1.不同的HTTP状态代码 2.不同长度的应答 3.存在或不存在某些表达式 4.错误或超时的发生 5.用来接收或完成响应时间的差异

六.Repeater模块:单次请求重放

通常会结合,比如Proxy的历史记 录,Scanner的扫描记录、Target的站点地图等,通过其他工 具上的右击菜单,执行【Send to Repeater】,跳转到Repeater选项卡中,然后进行重放

1.请求消息区

  1. 在请求编码的数字上双击之后,可以修改请求的名字。
  2. 【GO】按钮:发送请求给服务器端。服务器的请求域可以在target处进行修改。

2.应答消息区

显示服务器端的反馈消息

3.Options:重放设置

  1. Update Content-Length:控制Burp是否自动更新请求消息头中的Content-Length
  2. Unpack gzip / deflate:控制Burp是否自动解压或压缩 服务器端响应的内容
  3. Follow redirections:控制Burp是否自动跟随服务器端作请 求跳转,比如服务端返回状态码为 302,是否跟着应答跳转到302指向的url地址。 它有4 个选项,分别是永不跳转(Never),站内 跳转(On-site only )、目标域内跳转(Inscope only)、始终跳转(Always),站内跳转 是 指当前的同一站点内跳转;目标域跳转是指target scope中配置的域可以跳转;
  4. Process cookies in redirections:在跳转过 程中设置的Cookie信息,将会被带到跳转指向的 URL页面,可以进行提交。
  5. View:控制Repeater的视图布局
  6. Action:发送给其他工具组件中。

七.Sequencer模块

1.Sequencer使用步骤

  1. BP正常运行,浏览器代理设置完毕
  2. 在历史记录中,寻找有token或者类似的参数,将消息点击【Send to Sequencer】。
  3. 在Sequencer的Live capture中,点击【Configure】 配置需要分析的token或者参数。
  4. 配置完毕后,点击OK
  5. 点击【Select Live Capture】,开始进行参数值的获取。
  6. 当抓取的参数值总数大于100时,点击【pause】或者【stop】,这时可以进行数据分析, 点击 【Analyze now】即进行数据的随机性分析。
  7. 等分析结束,则可以看到分析结果的各种图表。
  8. 也可以保存数据,方便下一次直接使用。
  9. 当我再次使用时,直接加载数据进行分析即可。

2.Analysis Options:对token等参数分析的配置

2.1)Token Handling:控制token在分析中如何被处理

  1. Pad short tokens at start / end :如果token是可变长度的,BP会自动填充,一般在开始处填 充最好。
  2. Pad with:指定填充的字符。多数情况,数字或ASCII,HEX编码等用0填充最合适。
  3. Base64-decode before analyzing:是否对token进行base64编码再进行分析。

2.2)Token Analysis:控制采用什么方式对数据进行分析

1.字符级别

  1. Count:分析在令牌内的每个位置使用的字符的分布
  2. Transitions:分析样品数据中的连续符号之间的变化

2.字节级别:burpsuite实战指南(123页)

八.Decoder模块 :编码解码工具

多次解码编码很重要

1.输入域

  1. 可以直接填写或粘贴
  2. 通过【Send to Decoder】

2.输出域

显示编码 / 解码的结果

3.编码解码选项

  1. 支持Text / Hex两种格式
  2. Decode as:解码。目前支持URL、HTML、Base64、ASCII、16进制、8进制、2 进制、GZIP共 八种形式的格式转换
  3. Encode as:编码。目前支持URL、HTML、Base64、ASCII、16进制、8进制、2 进制、GZIP共 八种形式的格式转换
  4. Hash:散列。支持SHA、SHA-224、SHA-256、SHA-384、 SHA-512、MD2、MD5格式的转