Burp Suite中的Target Scope用于界定当前项目真正需要关注的主机和URL范围。配置Scope之后,Burp的Site map、Proxy、Scanner等工具可以根据范围采用不同的显示、记录或处理策略。不过,Scope本身并不等同于“禁止所有范围外流量经过代理”,因此仍然看到第三方统计、CDN、图片资源或其他域名请求并不一定代表配置失败。围绕“BurpSuite怎么设置Target Scope,BurpSuite Scope配置后仍抓到无关请求如何调整”,需要把目标范围、历史记录过滤和Proxy拦截规则分别设置清楚。
一、BurpSuite怎么设置Target Scope
Target Scope可以按域名直接添加,也可以进一步限定协议、端口和路径。对于只测试一个站点的情况,普通Scope已经足够;涉及多个子域、不同端口或指定目录时,再使用更细的匹配规则会更方便。
1、直接把目标站点加入Scope
①打开目标网站并产生一部分正常访问请求。
②进入【Target】→【Site map】,在左侧找到需要测试的目标域名。
③选中目标节点,右键单击,在弹出的菜单中点击【Add to scope】。
④出现是否停止记录Scope范围外流量的提示时,如果当前项目只需要分析目标站点,可以选择【Yes】。
⑤返回Site map检查目标节点的Scope状态,确认目标域名已经被正确纳入范围。
PortSwigger当前入门流程同样推荐直接从Site map将目标节点加入Scope,并在需要时停止记录范围外的Proxy流量。
2、按协议、路径和子域细化范围
①进入【Target】→【Scope】,查看当前已经添加的范围规则。
②只需要测试某个目录时,将Scope缩小到类似example.com/app/的路径,而不是直接包含整个域名。
③需要包含所有子域时启用【Include subdomains】,确认这些子域确实属于授权测试范围。
④如果普通URL前缀无法满足条件,启用【Use advanced scope control】。
⑤在高级规则中分别设置【Protocol】【Host or IP range】【Port】和【File】,把范围限制到实际项目边界。
普通Scope使用URL前缀匹配,不支持通配符;高级模式则可以通过正则表达式匹配主机、端口和路径。
3、检查排除规则
①在Scope设置中查看是否同时存在包含和排除规则。
②对不参与测试的静态资源目录、第三方接口或特定路径设置【Exclude from scope】。
③如果某个URL理论上应该属于目标范围却被判断为Out of scope,检查是否被更具体的排除规则覆盖。
④修改规则后重新访问一条目标请求,再确认Burp对该URL的Scope判断。
二、BurpSuite Scope配置后仍抓到无关请求如何调整
浏览器访问一个页面时,经常会同时连接统计服务、字体、CDN、登录平台或其他第三方资源。Burp Proxy位于浏览器和服务器之间,因此这些经过代理的请求仍可能被看到。Target Scope负责判断请求“是否属于测试范围”,至于它是否显示、是否进入HTTP history以及是否停在Intercept中,还需要对应设置控制。
1、只想隐藏无关请求时调整HTTP history
①进入【Proxy】→【HTTP history】。
②点击列表上方的过滤栏,打开HTTP history过滤设置。
③在请求类型中启用【Show only in-scope items】。
④返回历史列表,确认第三方域名和其他Out of scope请求已经不再显示。
这里需要注意,过滤器只是控制当前列表显示。已经存在的请求不会被删除,取消过滤后仍会重新出现。
2、不希望无关请求继续写入历史记录
①打开Burp的Proxy设置,找到【Proxy history logging】相关设置。
②将范围外流量处理方式调整为【Stop logging out-of-scope items】。
③如果此前已经加入Scope但选择了继续记录范围外流量,也可以重新检查Proxy中的项目级设置。
④再访问包含第三方资源的页面,观察新的Out of scope请求是否继续进入HTTP history。
Burp提供【Stop logging out-of-scope items】【Ask me what to do each time】和【Do nothing】三种历史记录处理方式;项目设置中还可以禁止Scope范围外项目进入Proxy history和Live tasks。
3、仍然被Intercept拦住时检查拦截规则
①进入Proxy设置中的【Request interception rules】。
②启用按照规则拦截请求的方式,检查现有规则是否过于宽泛。
③新增或调整规则,将匹配对象限定为目标域名、IP、协议等实际范围。
④多条规则同时存在时,重点检查【AND】和【OR】关系,避免一个宽泛的【OR】条件重新把范围外请求纳入拦截。
⑤WebSocket流量较多时,再启用【Only intercept in-scope messages】,减少范围外WebSocket消息停留在Intercept中。
Burp当前的请求拦截规则支持按照域名、IP、协议等属性匹配,并通过AND、OR组合;WebSocket还提供单独的仅拦截Scope内消息选项。
三、怎样让Scope范围更干净又不漏掉必要请求
Scope设置过宽会带来大量噪声,设置过窄又可能把目标业务依赖的接口排除掉。因此更适合的做法是先保留真实业务所需域名,再逐步排除确定无关的资源,而不是一开始把规则限制得非常死。
1、先判断“无关请求”是否真的无关
①在HTTP history中按Host查看请求来源。
②对登录、验证码、文件上传、API网关等业务请求,确认它们是否来自独立子域或其他目标域名。
③对确定只是广告、统计、公共字体等第三方资源的Host保持Out of scope。
④将业务必需的独立接口加入Scope,再重新完整操作一次核心功能。
这样可以避免为了减少列表噪声,把实际参与业务流程的认证域名或API域名一起过滤掉。
2、分别处理显示、记录和发送
①只是希望分析列表简洁时,使用【Show only in-scope items】。
②不希望项目积累范围外历史数据时,关闭Out of scope请求记录。
③不希望手工拦截时反复遇到第三方请求,则调整Request interception rules。
④如果项目要求Burp连范围外请求都不要发出,可在项目Scope设置中启用【Drop all out-of-scope requests】,并确认业务不会依赖这些请求。PortSwigger说明该设置会直接丢弃Scope外的出站请求,因此比单纯过滤历史记录更严格。
总结
BurpSuite怎么设置Target Scope,重点是根据授权测试范围准确限定目标域名、协议、端口和路径;BurpSuite Scope配置后仍抓到无关请求如何调整,则需要继续区分Scope判断、HTTP history显示、Proxy历史记录和Intercept拦截规则。看到范围外请求并不一定说明Scope失效,先判断这些请求只是被显示、被记录,还是仍被主动拦截,再调整对应设置,更容易得到干净且不会漏掉业务流量的测试环境。希望本文对大家配置Burp Suite目标范围有所帮助,如需进一步了解Burp Suite Target Scope设置与无关请求过滤方法,欢迎联系咨询。
