安装杂症

如果你直接下一步没有选择手动安装,就不能输入激活码。

只能去注册表 HKEY_CURRENT_USER\Software\JavaSoft\Prefs\burp 删除注册信息即可重新选择手动安装,不然无法回到手动激活。

另外 BurpSuite 一些配置、插件、内置浏览器文件都在 C:\Users\%username%\AppData\Roaming\BurpSuite

模块介绍

1.target

burp_target.png

2.proxy

burp_proxy.png

3.在 1.x 版本叫 spider,2.x 叫 crawl

burp_spinder_setting.png

4.Scanner
burp_scanner1.png
burp_scanner2.png
BurpSuite扫描指定参数.png

5.Intruder

攻击模式:

  • sniper:每个参数都过一遍你设置的 payloads。
  • Battering ram:所有参数 payloads 同时替换成一样的。
  • Pitchfork:第一个参数设值为 payloads1 第二个参数使用 payloads2,一对一。如果第一个 payload 设置为 4 个,第二个设置为 5 个,只会参照一个的数据发送 4 个攻击请求,反之亦然。
  • Cluster bomb:交叉攻击,列出所有排列组合后的结果。

Payloads 类型:

  • Number :设置数字范围
  • Null payloads:发送空载荷,拔高线程同一功能并发,针对乐观锁机制,在同一时间可以兑换多张礼品卡,有可能成功处理。
  • Brute forcer:设置一堆数据,可以对这些数据设置排列组合。最小出现 4 个字符,最多出现 10 个字符,这是规则。

小功能

Burp Collaborator

这个功能是在倾旋师傅 blog 上看到,它有产生一个域名,用来发送一段 Payload 来看对方服务器是否有发送 DNS 查询然后再发送一个 HTTP 请求,有点像知道创宇的 ceye.io 平台,只不过 Burp 好像不能外带查询,用来验证 XSS 和 SQL 注入还是不错。

BurpCollaborator.png

如果测试是在内网进行呢,可以在本地运行 Collaborator,最后 Project options -> Misc -> Burp Collaborator server 将地址指向本机即可。

启动

java -jar burp.jar --collaborator-server

这种本地设置只能接受 HTTP 请求不支持 DNS 和 HTTPS,在设置方面需要启用 Poll over unencrypted HTTP

BurpCollaboratorServer.png

参考链接:

Upstream Proxy Servers

UserOPtions -> Upstream Proxy Servers

将流量转发到指定代理服务器。使用方法看看 Burp 界面介绍就行,其中比较重要是目标主机可以填 * 通配符,表示抓取所有 Burp 接收过来的站点。

SOCKS Proxy

UserOPtions -> SOCKS Proxy

在工作中发现对方 WAF 把我给封了...不得不上 SOCKS 手动测试。
如果同时启用了 Upstream Proxy ServerUpstreamProxyServer 的请求会通过 SocksProxy 发送。

参考文章:

Burp Extensions

Active Scan++
Wsdler
JSON Beautifier
Additional Scanner Checks
Backslash Powered Scanner
https://github.com/c0ny1/captcha-killer,验证码识别

参考文章:

快捷键

天天点慢不慢呐?整点快捷键提高效率。

文本编码,加上 Shift 键反向解码。

  • Ctrl + [Shift] + U,对所选文本进行 URL 编码。
  • Ctrl + [Shift] + H,对所选文本进行 HTML 编码。
  • Ctrl + [Shift] + B,对所选文本进行 Base64 编码。

发送数据到指定模块

  • Ctrl + R,发送到 Repeater 模块
  • Ctrl + I,发送到 Intruder 模块

切换到指定模块

  • Ctrl + Shift + T,切换至 Target
  • Ctrl + Shift + R,切换至 Repeater
  • Ctrl + Shift + P,切换至 Proxy
  • Ctrl + Shift + I,切换至 Intruder
  • Ctrl + Shift + D,切换到 Dashboard

Proxy 模块操作

  • Ctrl + T,开关代理功能。
  • Ctrl + F,把拦截的当前请求转发至服务器。

Repeater 模块操作

  • Ctrl + "+",切换到下一个选项卡
  • Ctrl + "-",返回上一个选项卡
  • Ctrl + Space,重放请求

快捷键1.png
快捷键2.png

录制宏

获取页面中 Token 值。

参考链接:

https原理&CA证书

https 只是解决传输过程的安全性。

HTTPS.png

TLS

1.先与对方连接。

数字证书(Certificate Authority)+数字签名

问题:只用证书,那证书被掉包怎么办?

找第三方权威机构,确认 Server 是它自己。

2.证书中心(CA)把域名相关信息生成数字证书,发给客户端,不怕你劫持,我会取验证信息真伪,证书文件是存放在 Server 中。

解决问题:掉包解决方法 ==>> 采用数字证书验证方法,对证书内容进行防伪造处理。

阮一峰在《数字签名是什么?》这篇文章中提到相关概念。

数据摘要 --> 数字签名
Server 传输数据先用 Hash 函数,生成数据摘要(digest)。再用私钥,对这个摘要加密,生成"数字签名"(signature),将数字签名放在数据下面一起发送。

数字签名 --> 数据摘要
Client 收到后整个包后,用公钥解出数据签名得到信件的摘要,用 Hash 函数对接收到的数据生成摘要,对比解出来的摘要,一致就未被篡改。

3.客户端收到服务器数字证书以后,会到浏览器中找到证书中心,拿公开的公钥,去解密 Server 证书中的证书签名。

ac.png

这个签名(由证书里面儿加密算法生成),被 CA 私钥加密过(只是签名被私钥加密证书内容不做加密),就算中间人篡改证书内容也无法重新生成证书签名(因为私钥在 CA 那里),他改了证书内容用自己的私钥加密后,Client 就无法解开。

最后自己用证书中指定的加密算法,对 Server 证书内容加密生成数据摘要,比对从证书签名解出来这个数据摘要,是否一致,不一致就是证书被篡改,会在页面显示告警信息。CA 和数据比对成功后,加密一段随机值发过去。

HttpsWaring.png

Burp 为什么导入证书就能够解密 HTTPS?

Burp工作在客户端和服务中之间(中间人)

  1. 向 Server 发送一个请求会返回证书,Burp 去验证,看有没有这个机构,如果是真的就继续用自己的私钥加密证书签名+证书传给客户端。
  2. 客户端收到后也去浏览器验证 Burp 这个证书是不是真的,由于已经导入到浏览器了,所以肯定能用 Burp 证书中心的公钥解开证书签名,双方就开始通信。
  3. 发出去时证书会被 Burp 拦截替换成服务器的。

参考链接:

标签: none

讨论讨论讨论!