渗透测试用到Burp时候很多,整理了一些tips供测试时候更得心应手~
tips1:光标错位和中文显示
新版一打开容易光标错位,默认情况下使用字体是Courier New,显示不了中文。
换用Monospaced字体即可正常显示中文,一般这里就不会错位了,错位的话可以大小弄大一些:
如果是win下,Burp字体容易模糊,特别是exe版本,如果模糊,可以设置缩放125%就好了。
可以修改配置文件:BurpSuitePro.vmoptions
-Dsun.java2d.dpiaware=true
-Dsun.java2d.uiScale=1.25
tips2:
自动滚动以匹配请求/响应选项卡
测试时候需要关注当前包和下一次包有啥区别,以及需要搜索一些关注的词,可以设置自动去匹配关注的词:
关注的词将突出显示。
tips3:
Burp 流量处理
测试的时候应该关注测试的目标,减少无用的流量。
tips4:
浏览器自带请求禁用
比如在用firefox时候,会拦截到一些浏览器自己的请求:
有一个高级设置可以禁用此功能,但 UI 中没有任何内容。在地址栏中输入:about:config
搜索 network.captive-portal-service.enabled 并单击它以切换为false,它将停止发送此请求
如何阻止firefox这些没用的请求,按这篇设置以后会少一些firefox的请求:
https://support.mozilla.org/en-US/kb/how-stop-firefox-making-automatic-connections
但是还是会有一些域名的请求,转到about:config,再次搜索self-repair.mozilla.org
直接把此首选项的值删掉即可。
这样firefox就没有发出那些没用的请求了。
tips5:
通过Burp TLS Pass Through
除了浏览器,还有一些插件的流量很烦人,可以用这个功能告诉burp不要拦截这些流量。
先收集有哪些需要过滤的地址:
挂着代理,等20分钟,burp中查看:
收集完了以后开始复制这些地址,先转到target->scope,开启Use advanced scope control
然后转到到Target > Site map复制这url,单击Filter并单击Show all 按钮
Add to Scope,切回去就能看到这些url,再从scope里拿出来,你就有一批需要过滤的地址了:
然后将这些将这些url添加到 Burp TLS Pass Through,但是TLS Pass Through可以选择粘贴 URL 或从文件加载列表。不支持刚才复制出来的格式。该文件每行应该有一个正常的 URL(不是正则表达式)。
直接复制刚才的格式会报错:
按正常格式添加:
也可以直接在burp的项目配置文件中加:
tips6:
scope过滤HTTP 不必要请求
上面的功能过滤了一些不必要的https请求,但HTTP 请求仍然会被代理,常见的方法可以在浏览器代理插件中进行过滤:
还可以善用Burp的scope功能:
可以创建 URL 匹配规则以包含或排除可能与测试范围无关的特定 URL。
正则对url进行匹配:
也可以对已经有的请求加入scope中,右键单击请求并选择Add to scope。然后您可以导航到Target > Scope并查看添加到范围的请求。
scope比较方便是支持正则,比如整个站 *.google.com 或某个目录 google.com/images/
设置了scope后可以在HTTP History中进行过滤,选择"Show only in-scope items"
history也可以设置一些过滤选项大家都很熟悉,Filter by MIME type
设置MIME类型,Other binary
需要查看大多数二进制数据(application/octet-stream),Filter by file extension
可以设置后缀的过滤,这里说一下Filter by file extension
最好使用它的hide功能即可,过滤掉常见静态后缀和字体后缀即可。Filter by listener
用的少一些,当应用程序在不同的端口上进行通信并且不支持代理设置时特别有用。
tips7:
隐藏特定方法的请求(OPTIONS)
测试的时候会发送很多特定方法的包,比如查看history中存在很多测试的OPTIONS包:
这里可以用到一个拓展:
https://github.com/pajswigger/filter-options
它增加Content-Type: application/octet-stream了每个OPTIONS请求的响应。然后 HTTP History 将该请求分类为Other Binary,我们可以按此进行过滤。
还可以参考这篇,将OPTIONS请求加上MIME类型为JSON以达到来过滤的目的:
https://captmeelo.com/pentest/2020/01/06/filter-options-method.html
https://github.com/capt-meelo/filter-options-method
tips8:
对请求包进行非缓存的响应:
可以通过在 Burp 的代理选项中启用强制所有响应非缓存,这样就可以看到操作后最新的版本:
tips9:
设置不发送隐私
默认 PortSwigger会收集数据:
可以关闭这个匿名反馈传输
tips10:
禁用 Burp Collaborator
Burp Collaborator可以用来接受带外,但是每次一打开burp就弹出来 Burp Collaborator很烦,设置中可以关闭:
tips11:
sitemap 显示切换
默认sitemap显示是这样
个人毕竟喜欢标签切换的形式,简洁一些:
在Sitemap中任意位置并选择View -> Tabs来将Target选项卡切换到此视图
其他模块切换成tabs是一样的。
再提一点,展开折叠功能也很好用:
tips12:
Burp 扫描选项
大家都知道Burp 有两种扫描模式:主动和被动。两者可以同时激活。
被动扫描中,它只查看请求/响应,并且基本上根据其规则集进行 grep,而不发送任何请求。主动扫描中,它实际上会生成有效负载并将它们发送到服务器(并分析请求/响应)。
需要注意的就是不要一开始就使用主动扫描,很容易测试时候直接被waf给ban了,还没测就结束了,老版本有scanner的选项卡可以配置,新版可以在dashboard配置:
推荐不改变Live Passive Scanning为Scan everything
,也可以将其设置为Use custom scope
tips13:
repeater中切换历史
发包时候老是要看历史包,除了ctrl+z还可以直接切回去:
tips14:
repeater中自动跟踪重定向
测试时候还可以设置Repeater 将自动跟踪重定向响应。
tips15:
在浏览器中重复请求
如果测试特定请求在由用户代理呈现时的行为方式,比如xss,Burp可以重复请求并在浏览器中查看它。右键单击消息输出的请求后选择"在浏览器中请求"。
浏览器打开即可。
tips16:
请求格式转换
常用就是get post 上传这些直接转换:
还有常用的就是转成XML/JSON,在 BApp Store 中很容易找到的ctc插件:
很方便转成XML和JSON:
tips17:
选项卡命名和切换
发了很多包,找到特定发包选项卡一个个翻很慢,最好命名:
还有的就是模块选项卡的切换,有时候插件很多了,找repeater和proxy眼睛看不过来,可以直接windows选项卡切换: