freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PAC 魔法 让你的代理变得聪明
2020-01-01 22:26:08

抓包这件事情不管在日常开发过程中,还是日常渗透的过程中都是不可或缺的。

但是,大多数情况下,我们都是这么做的。

启动一个  Burp Suite  , 设置一个浏览器http 代理,然后,就可以放心大胆的抓走所有的流量了。

这种办法,虽然简单方便。对于小的web系统,app 是完全没有问题的。

但是,假想这么一个需求:

一个app 关联的api 分散在几十个域名下边。

我们只需要关心其中的一个域名下的请求。

我们不希望所有的请求都走到我们的burp 下边。

我们只希望选择我们需要的域名来穿过我们的burp 。

这种问题可以归结为如何构建一个域名的选择代理。


当当当, PAC 文件可以解决我们的需求。


PAC 文件是一个代理的配置文件,本质就是一个js 文件,内部包含一个  FindProxyForURL 的实现,来决定我们的流量去向。

一个简单的实现如下: 

function FindProxyForURL(url, host) {
    //return "DIRECT";  // 表示请求不经过我们的代理
    //return 'PROXY 127.0.0.1:7070';  // 表示请求代理到对应的地址
}


PAC 传递请求的URL , host 两个参数,综合一些标准的js 逻辑判断,或者 一些PAC 函数完成逻辑判断,决定是否经过我们的代理,或者经过我们的哪个代理。

文件可以放在本地,或者放到web 服务器上均可。 在代理,自动代理设置中,填写PAC 的地址既可,根据请求的状况来决定数据代理的去向。


另外,这里推荐一个 golang 写的代理类库,可以根据需求对代理的请求加料。

https://github.com/elazarl/goproxy 



# proxy
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者