【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选项卡 :拦截请求
- Forward:发送请求消息到服务端
- Drop:丢掉当前请求消息
- Intercept is on :开启拦截请求消息。
- Intercept is off :关闭拦截。
- Action:除了将当前请求的消息传递到Spider、Scanner、Repeater、Intruder、Sequencer、Decoder、Comparer组件外;还可以一些请求消息的修改,比如改变GET或者POST请求方式、改变请求body的编码;也可以改变请求消息的拦截设置,如不再拦截此主机的信息、不再拦截此IP地址的消息、不再拦截此种文件类型的消息、不再拦截此目录的消息;也可以指定针对次请求消息拦截它的服务器端返回消息。
- Comment:对请求消息添加备注
- Highlight:对请求消息设置高亮的颜色备注
1.1)消息分析选项视图
- Raw:实体内容。显示WEB请求的raw格式,包含请求地址、http协议、主机头、浏览器信息、 Accept可接受的内容类型、字符集、编码方式、Cookie等。
- Params:请求参数。显示客户端请求的参数信息:包括GET/POST请求的参数、Cookie参数等。
- Headers:消息头。与Row信息类似,只是展示的更直观。
- Hex:16进制编码。显示Raw的二进制内容。
2.http history选项卡:记录历史请求消息和响应内容
- 单击历史消息,在详细详情块中显示此条消息的文本详细信息
- 双击历史消息,弹出此条消息的详细对话框
1.【Previous】:浏览上一条历史消息 2.【Next】:浏览下一条历史消息 3.【Action】:修改row的请求参数后,可通过此按钮将消息发送到Burp的其他模块
2.1)筛选过滤器:过滤不符合规则的历史消息
- Filter by request type :请求消息类型过滤。①.仅显示当前作用域。②.仅显示有服务器响应。 ③.仅显示带有请求参数
- Filter by MIME type:根据服务器返回的文件类型过滤。①.HTML。②.Script。③.XML。 ④.CSS。⑤.其他文本。⑥.图片。⑦.Flash。⑧.二进制文件
- Filter by status code:根据服务器端返回的HTTP状态码过滤:①.2XX,成功。②.3XX,重定向。 ③.4XX,客户端错误。④.服务器错误
- Filter by search term:根据查找条件过滤。①.正则表达式。②.大小写敏感。③.否定查找
- Filter by file extension:根据文件类型过滤。①.显示。②.隐藏
- Filter by annotation:按照注释过滤。①.仅显示注释的消息。②.仅显示高亮的消息。
- Filter by listener:按照监听端口过滤。
2.2)历史记录列表:记录了每一条请求消息和响应消息
请求序列号、请求协议和主机名、请求的方式、URL路径、请求参数、用户是否编辑过消息、服务 器端返回的HTTP状态码、消息长度、服务器返回的文件类型、文件类型、标题、注释、SSL、 IP、Cookie、时间、监听的端口
2.3)消息详情:查看具体消息的内容
- 请求消息的raw格式内容、参数、请求头、Hex格式
- 响应消息的Raw格式内容、请求头、Hex格式、HTML格式、渲染页面
- 查找内容:“+”提供了①.基于正则的查找。②.区分大小写。③.当文本改变自动滚屏的设置。
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:响应消息修改的设置
- Unhide hidden form fields:显示Form表单中的隐藏字段
- Prominently highlight unhidden fields:高亮显示Form表单中的隐藏字段
- Enable disabled form fields:使form表单中disable属性失效,变成可输入域
- Remove input field length limits:移除输入框的长度限制
- Remove JavaScript form Validation:移除JavaScript验证
- Remove all JavaScript:移除所有的JavaScript
- Remove tags:移除标签
- Covert HTTPS links to HTTP:转换HTTPS超链接为HTTP链接。
- 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
- Automatically add entries on client SSL negotiation failture:当使用HTTPS时CA证书不管 用,则自动将目标URL添加到SSL直接连接。
- 直连的方式需要配置,在BurpSuite实战指南的37页。
4.7)其他:设置BP一些特殊的细节,用来处理特别的问题和情况。
- Use HTTP/1.0 in requests to server :指定HTTP1.0协议与服务器进行通信。
- Use HTTP/1.0 in responses to client:指定响应消息用HTTP1.0的协议进行反馈。
- Set responce header "Connection: close":设置响应头为"Connection: close",阻止HTTP 管道攻击。
- Strip Proxy-* headers in incoming requests:清除消息头中的代理服务器信息。
- Unpace gzip / deflate in requests:解压在请求消息中的消息体
- Unpace gzip / deflate in responses:解压在响应消息中的消息体
- Disable web interface at http:// burp :禁用 http:// burp
- Allow requests to web interface using fully-qualified DNS hostnames:允许通过域名或 主机名访问Burp Suite
- Suppress Burp error messages in browser:不在浏览器中显示Burp的错误,默认显示
- Disable logging to history and site map:禁用日志记录历史消息和站点地图。
- Don't send items to Proxy history or other Burp tools:禁止发送项目到代理历史和其他其 他Burp的工具
- Don't send items to Proxy history or other Burp tools,if out of scope:如果超过范围, 禁止发送项目到代理历史和其他其他Burp的工具
- Enable interception at startup:配置拦截设置:①.总是生效。②.总是失效 。③.从上一次 的 Burp Suite中恢复
二.Target模块:自动记录和分析站点信息
1.Site map选项卡:记录浏览信息,包含每一个请求和响应的详细信息
灰色没访问过的,黑色是访问过的
1.1)左:访问的站点,按照照网站的层级和深度,树形展示整个应用系统的结构和关联其他域的url情况。
- 可以对指定的站进行爬虫:Spider this host
- 可以对指定的站进行扫描:Actively scan this host
- 将站点加入目标站点中:Add to scope
1.2)中:某一个url被访问的明细列表,比如访问了那些URL,还有详细的请求和响应。
1.3)右:这个站点存在的疑似漏洞。
2.Scope选项卡:站点设置
2.1)Target Scope:控制拦截请求,指定爬取对象,指定扫描站点,爆破指定站点。
- 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):比较的是权限
- 同一个帐号,具有不同的权限,比较两次请求结果的差异。
- .两个不同的帐号,具有不同的权限,比较两次请求结果的差异。
- 两个不同的帐号,具有相同的权限,比较两次请求结果的差异。
3.3)攻击面分析(Analyze target):分析每一个站点所包含的URL信息
3.4)通过添加过滤器(Filter)来过滤非目标站点
- 将目标站点添加到Scope:在"Target" - "Site map"区域中, 用鼠标右键单击目标站点, 然后选 择"add to scope",此时Burp会生成一个正则表达式,并自动添加到"Target"-" Scope"中、
- 使用过滤器Filter: 在"Target"-"Sitemap"中,Filter可以自由选择过滤类型,以便我们进行查 看。单击"Filter",选择"Show only in-scope items", 只显示范围内的列表,即可进行过滤。
三.Spider模块:爬取大型网站的信息
1.Control:爬虫控制
1.1)Spider Status:控制Spider是否运行和队列中的数据管理
显示当前进度、传输情况、请求队列、有Spider运行/暂停按 钮与清空队列按钮
1.2) Spider Scope:控制爬虫的抓取范围
- 使用与站点地图一致的范围
- 使用自定义范围:与Target Scope 的配置完全一致
2.Option:爬虫的配置
2.1)Crawler Setting:抓取设置
- Check robots.txt:检查robots.txt 文件
- Detect custom “not found” response:检测404应答。
- Ignore links to non-text content:忽略内容为空的链接
- Request the root of all directories:爬取根目录下 所有文件和目录
- Make a non-parameterized request to each dynamic page:对每一个动态页面发送无参数 请求
- Maximun link depth:最大链接深度
- Maximun parameterized request per URL:最大URL请求参数的数目
2.2)Passive Spidering:被动爬取,不与服务器发生交互
- Passively spider as you browse:勾选则表示被动爬取,不发送新的请求。
- Link depth to associate with Proxy request :控制代理的链接深度。0表示无限深。
2.3)Form Submission:表单提交,用来匹配和自动提交表单内容
- individuate forms by :个性化表单。有Action URL、 method、fields、values。 2. Don't submit forms:当抓到表单时,不提交表单
- Prompt for guidance:当抓到表单时,手动提交表单
- 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:爬虫的登录页面配置
- Don't submit login forms:不提交登录
- Prompt for guidance:手动提交
- Handle as ordinary forms:作为表单提交,这里就会使用2.3)的表单配置。
- Automatically submit these credentials:自动提交定义好的用户名和密码
2.5)Spider Engine:爬虫引擎
- Number of threads:爬虫的线程
- Number of retries on network failure:连接失败时重连的次数
- Pause before retry(milliseconds):重连间隔时间
- Throttle between requests(milliseconds):请求之间的间隔时间
- Add random variations to throttle:间隔时间增加随机值
2.6)Request Headers:爬虫请求头的设置
- Use Http version 1.1:使用HTTP 1.1协议进行连接
- Use Referer header:使用引流头
1.【add】:添加一个请求头 2.【Edit】:编辑 3.【Remove】:删除 4.【Up】:上移 5.【Down】:下移
四.Scanner模块:自动检测普通漏洞
需要配置Proxy模块、浏览器代理、Target的站点地图
1.基本使用步骤
- BP正常启动+设置浏览器代理
- Intercept is off + 手动浏览目标站点
- 浏览时,Scanner自动扫描请求,并检测漏洞
- 在站点地图,针对目标站点,右键选择Actively scan this host进行域扫描
- 在Scanner选项卡中查看进度
- 如果对目标站点的目录进行扫描,还可以有更多的设置。
- 在Scanner选项卡中查看进度
- 定义作用域进行扫描
- 在Live Active Scanning控制块中,选择 Use suite scope。扫描目标域
- 再次使用的话,自动漏洞分析
- 站点地图显示漏洞信息
- 将漏洞详细发送到Repeater模块进行检测
- 只要有扫描就会有漏洞信息出现
- 扫描完成后,右键,issues-->report issues for this host 即可导出漏洞报告。
2.扫描方式
2.1)主动扫描:Burp主动加载payload并且发送新的请求,检测扫描出的漏洞。
客户端的漏洞,像XSS、Http头注入、操作重定向; 服务端的漏洞,像SQL注入、命令行注入、文件遍历。
2.2)被动扫描:不发送新的请求,只对已经存在的请求进行扫描检测。
- 提交的密码为未加密的明文。
- 不安全的Cookie的属性,比如缺少的HttpOnly和安全标志。
- cookie的范围缺失。
- 跨域脚本包含和站点引用泄漏。
- 表单值自动填充,尤其是密码。
- SSL保护的内容缓存。
- 目录列表。
- 提交密码后应答延迟。
- session令牌的不安全传输。
- 敏感信息泄露,像内部IP地址,电子邮件地址,堆栈跟踪等信息泄漏。
- 不安全的ViewState的配置。
- 错误或者不规范的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:对扫描进行配置
- 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)参数跳过:也可以指定哪些参数进行跳过,不需要进行漏洞验证。有服务器端参数跳过和所有参数 均跳过。
- 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框架点击劫持、 http:// ASP.NET ViewState
五.Intruder模块:自动化测试
在原始请求数据之上,通过自动化修改各种参数的值,获取不同的响应,从而得到数据。
1.Intruder基本使用步骤
- Burp Suite正常启动和设置好浏览器代理
- 关闭代理拦截功能
- 在历史日志(History)子选项卡中,查找可能存在问题的请求日志,发送到Intruder。 4. 在Intruder 选项卡,打开Target和Positions子选项卡,会看到上一步发送过来 的请求消息。
- 默认情况下,Burp Intruder会对请求参数和Cookie参数设置成Payload position,可通过右侧 对攻击的位置进行添加、清除、自动、更新。
- 在Payload 子选项卡,设置攻击的配置
- 设置完毕后,再回到Position界面,点击【Start attack】,发起攻击!
- 此时,Burp会自动打开一个新的界面,包含攻击执行的情况、Http状态码、长度等结果信息。
- 可以选择其中的某一次通信信息,查看请求消息和应答消息的详细。
- 为了更好的标明应答消息中是否包含有我们需要的信息,通常在进行攻击 前,会进行Options选 项的相关配置,使用最多的为正则表达式匹配(Grep - Match)。或者,我们使用结果选项卡中 的过滤器,对结果信息进行筛选。
- 结果选项卡中所展示的列我们是可以进行指定的,我们可以在菜单Columns进行 设置。
- 最后,选择我们需要的列,点击【Save】按钮,对攻击结果进行保存。保存之前我们也可以对保 存的内容进行设置。
2.Payload选项卡:对自动化攻击的配置
2.1)Payloads:对攻击点数量以及类型的设置
1.payload set:攻击点数量的设置,取决于之前在position中设定的攻击点。 2.Payload type:攻击类型
- Simple list:简单列表。配置字符串列表作为攻击,可以手工添加或者从文件加载,也可以BP定 义好的列表(包括XSS脚本、CGI 脚本、SQL注入脚本、数字、大写字母、小写字母、用户名、密 码、表单域的字段名、 IIS文件名和目录名等等)。
- Runtime file:运行文件。用一个文件来作为攻击列表。运行时,Burp Intruder将 读取文件的 每一行作为一个Payload。 3. Custom iterator:自定义迭代器。对不同的攻击位置,选定不同的简单列表,以笛卡尔的交叉方 式进行攻击。
- Character substitution:字符串替换。根据替换规则,将定义好的攻击列表进行替换,用替换 的攻击列表进行攻击。
- Case modification:大小写替换。将定义好的攻击列表进行大小写替换。No change(不改 变,使用原始字符串)。、To lower case(转为小写字母)、To upper case(转为大写字 母)、To Propername(首字母大 写,其他小写)、To ProperName(首字母大写,其他不改 变)
- Recursive grep:从服务器的响应中,根据正则提取信息作为攻击列表,进行攻击。
- Illegal Unicode:非法字符。用相应攻击的非法Unicode编码替换攻击列表。在BurpSuite实战 指南的95页。
- Character blocks:字符块。根据Base String的字符串,生成Min Length 和Max Length 之间 数量长度的字符串。
- Character blocks:字符块。根据Base String的字符串,生成Min Length 和Max Length 之间 数量长度的字符串。
- Number:数字类型。可以设置从几到几的数字,有递增和随机两种类型。并且可以设置数字的 十进制或者16进制等。
- Dates:日期类型。设置方式与数字类型类似。自定义日期格式:【| 格式 | 样例| |--------|-------- | | E | Sat | | EEEE | Saturday | | d | 7 | | dd | 07 | | M | 6 | | MM | 06 | | MMM | Jun | | MMMM| June | | yy| 16 | | yyyy| 2016 |】
- Brute force:暴力字典。根据Character set设置的字符串,列举生成指定长度的字符串作为攻 击列表。
- Null payloads:空字符串攻击。可用于反复请求。
- Character frobber:依次修改指定 字符串在每个字符位置的值,每次都是在原字符上递增一个 该字符的ASCII码。
- Bit flipper:对预设的Payload原始值, 按照比特位,依次进行修改。
- Username generator:用户名生成器。用于用户名和email帐号 的自动生成。
- ECB block shuffle:是基于ECB加密模式的 Payload生成器。
- Extension-generated:基于Burp插 件来生成Payload值。
- 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:攻击类型
- Sniper:狙击手模式。使用一组攻击列表,依次替换Payload位置上被§标志的文本。(一次攻击 只能使用一个Payload位置)
- Battering ram:攻城锤模式。使用单一的攻击列表,依次一次性替换,全部Payload位置上 被§ 标志的文本。
- Pitchfork:草叉模式。使用多组攻击列表,对Payload位置进行攻击列表一对一对应方式进行攻 击。
- Cluster bomb:集束炸弹模式。使用多组攻击列表,对Payload位置进行攻击列表一对多对应方 式进行攻击。
- 【Add §】 :添加一个攻击点位置
- 【Clear §】: 清除所有Payload位置标志或者清除选中的Payload位置标志
- 【Auto §】: BP自动设置位置。目前Burp支持自动选择的参数类型有: 1.URL请求参数 2.Body参 数 3.cookie参数 4.复合型参数属性,比如文件上传时候的文件名 5.XML数据 6.JSON数据 虽然Burp默 认是支持自动标志这些类型的参数作为Payload位置,但如果是针对于像XML或JSON的节点属性值的,还是需 要手工指定。
- 【Refresh】 : 刷新消息内容中带有颜色的部分。
- 【Clear】: 清除消息编辑器中所有内容。
4.Options:攻击前配置
4.1)Request Headers:控制请求消息的头部信息。
- Update Content-Length header:Burp Intruder为每个请求添加或更新 Content-Length头 为该次请求的HTTP体的长度正确的值。
- Set Connection: close:Burp Intruder为每个请 求消息中添加或更新值为“关闭”的连接头,这 将更迅速地执行。
4.2)Request Engine:设置攻击的引擎
- Number of threads:攻击线程。
- Number of retries on network failure :网络失败时候重试次数
- Pause before retry:重试前的暂停时间间隔(毫秒)
- Throttle between requests :请求延时(毫 秒)。可以固定也可以随机。
- Start time:开始时间,启动攻击之后多久才开始执行。可控制时间。
4.3)Attack Results:攻击结果信息显示
- Store request:保存请求消息
- Store responses:保存响应消息
- Make unmodified baseline request:发出未修改的基线请求
- Use denial-of-service made(no results):使用拒绝服务(无结果)
- Store full payloads:保存所有攻击
4.4)Grep Match:从响应消息中提取内容,如果找到,则在新列中显示。用在结果筛选。
- Match type:匹配表达式还是简单的字符串。
- Case sensitive match:是否大小写敏感。
- Exclude HTTP headers:是否包含http消息头。
4.5)Grep Extract:提取响应消息中的有用信息,如果找到,则在新列中显示。
4.6)Grep Payloads:提取响应消息中是否包含Payload的值。
- 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菜单
- pause : 暂停攻击
- resume : 恢复攻击
- repeat : 再次攻击 2.Save菜单
- Attack : 保存当前攻击的副本,下次可以从此文件进 行再次攻击
- Results table : 保存攻击的结果列表
- Server responses: 保存所有的服务器响应消息
- 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.请求消息区
- 在请求编码的数字上双击之后,可以修改请求的名字。
- 【GO】按钮:发送请求给服务器端。服务器的请求域可以在target处进行修改。
2.应答消息区
显示服务器端的反馈消息
3.Options:重放设置
- Update Content-Length:控制Burp是否自动更新请求消息头中的Content-Length
- Unpack gzip / deflate:控制Burp是否自动解压或压缩 服务器端响应的内容
- Follow redirections:控制Burp是否自动跟随服务器端作请 求跳转,比如服务端返回状态码为 302,是否跟着应答跳转到302指向的url地址。 它有4 个选项,分别是永不跳转(Never),站内 跳转(On-site only )、目标域内跳转(Inscope only)、始终跳转(Always),站内跳转 是 指当前的同一站点内跳转;目标域跳转是指target scope中配置的域可以跳转;
- Process cookies in redirections:在跳转过 程中设置的Cookie信息,将会被带到跳转指向的 URL页面,可以进行提交。
- View:控制Repeater的视图布局
- Action:发送给其他工具组件中。
七.Sequencer模块
1.Sequencer使用步骤
- BP正常运行,浏览器代理设置完毕
- 在历史记录中,寻找有token或者类似的参数,将消息点击【Send to Sequencer】。
- 在Sequencer的Live capture中,点击【Configure】 配置需要分析的token或者参数。
- 配置完毕后,点击OK
- 点击【Select Live Capture】,开始进行参数值的获取。
- 当抓取的参数值总数大于100时,点击【pause】或者【stop】,这时可以进行数据分析, 点击 【Analyze now】即进行数据的随机性分析。
- 等分析结束,则可以看到分析结果的各种图表。
- 也可以保存数据,方便下一次直接使用。
- 当我再次使用时,直接加载数据进行分析即可。
2.Analysis Options:对token等参数分析的配置
2.1)Token Handling:控制token在分析中如何被处理
- Pad short tokens at start / end :如果token是可变长度的,BP会自动填充,一般在开始处填 充最好。
- Pad with:指定填充的字符。多数情况,数字或ASCII,HEX编码等用0填充最合适。
- Base64-decode before analyzing:是否对token进行base64编码再进行分析。
2.2)Token Analysis:控制采用什么方式对数据进行分析
1.字符级别
- Count:分析在令牌内的每个位置使用的字符的分布
- Transitions:分析样品数据中的连续符号之间的变化
2.字节级别:burpsuite实战指南(123页)
八.Decoder模块 :编码解码工具
多次解码编码很重要
1.输入域
- 可以直接填写或粘贴
- 通过【Send to Decoder】
2.输出域
显示编码 / 解码的结果
3.编码解码选项
- 支持Text / Hex两种格式
- Decode as:解码。目前支持URL、HTML、Base64、ASCII、16进制、8进制、2 进制、GZIP共 八种形式的格式转换
- Encode as:编码。目前支持URL、HTML、Base64、ASCII、16进制、8进制、2 进制、GZIP共 八种形式的格式转换
- Hash:散列。支持SHA、SHA-224、SHA-256、SHA-384、 SHA-512、MD2、MD5格式的转