0%

BurpSuite忽略心跳包的优雅解法

本文仅作为技术讨论及分享,严禁用于任何非法用途。

前言

在渗透中,我们测试的站点可能会一直产生心跳包,比如展示大屏网站,严重影响了渗透工作,以往的方法都是通过BurpSuite的target scope来进行配置,但是个人不喜欢这么操作,因为容易忽略掉一些站外流量,近期想到了一种新方法来解决这个问题。

正文

前排提醒:Firefox下的SwitchyOmega不支持PAC配置,所以此方法不太适用。官方设置支持PAC但是用起来不优雅,推荐Chrome

方法很简单,就是配置pac代理文件。
首先需要安装 SwitchyOmega,应该没有人不会安装吧。
创建一个新的情景模式,使用PAC模式

贴上下面的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// 三种匹配方式,任选一种即可,推荐使用 noProxyURI

// 配置不走代理的URL列表,需要结合glob通配符使用
var noProxyURLs = [
"http://baidu.com/findQunQps*",
"http://baidu.com/findContainerResource*"
];

// 配置不走代理的URI列表,只要URL包含下面字符串就不会走代理
var noProxyURI = [
"/abc/defg",
"/abc/report"

]


// 配置不走代理的host列表,url中包含下面字符串就不走代理

var noProxyHosts = [
"localhost",
"127.0.0.1",
"firefox.com",
"mozilla.net",
"firebaseio.com",
"mozilla.org",
"google.com",
".mozilla.com",
".googleapis.com",
"firefox.settings.services.mozilla.com"
];


var burp = "PROXY 127.0.0.1:8080";
var direct = 'DIRECT';


function FindProxyForURL(url, host) {

// 检查当前URL是否在不走代理的列表中
for (var i = 0; i < noProxyURLs.length; i++) {
if (shExpMatch(url, noProxyURLs[i])) {
// 如果匹配到不走代理的URL,则返回 DIRECT
return direct;
}
}
for (var i = 0; i < noProxyURI.length; i++) {
if (url.indexOf(noProxyURI[i]) !== -1) {
// 如果匹配到不走代理的URL,则返回 DIRECT
return direct;
}
}
// 检查当前主机名是否在不走代理的列表中
for (var i = 0; i < noProxyHosts.length; i++) {
if (dnsDomainIs(host, noProxyHosts[i])) {
// 如果匹配到不走代理的主机名,则返回 DIRECT
return direct;
}
}

// 如果不在不走代理的URL列表中,则走代理
return burp;
}

如果需要增加url或者host只需要添加到数组里边即可。