在Web渗透测试过程中,BurpSuite是不可或缺的神器之一。

BurpSuite的核心是代理Proxy,通常情况下使用BurpSuite的套路是:浏览器设置BurpSuite代理——>访问Web应用程序——>BurpSuite抓包分析。
今天就写一些不一样的,给BurpSuit设置非本地的网络代理

0x01 一般情况

最一般的情形是针对采用HTTP协议的Web应用程序的渗透测试。这种情况下,直接设置浏览器的代理服务器为BurpSuite即可,默认为127.0.0.1:8080。

当然,直接更改浏览器的代理服务器设置比较繁琐,更好的办法是使用浏览器插件,预先设置好代理方案,然后根据实际情况一键切换。Chrome推荐使用Proxy SwitchyOmega插件:

0x02 移动端流量抓取

有时候,我们还需要对移动APP进行抓包分析,这时候该怎么办?

其实很简单,两步即可解决。

第一步,在BurpSuite的Proxy Listeners中,选中当前在用的代理,点击左侧的Edit按钮,在弹出的对话框中,将Bind to address选项设置为All interfaces。

第二步,手机和PC连接同一Wifi,打开手机Wifi设置,设置HTTP代理服务器为BurpSuite所在的PC的IP地址,端口为BurpSuite的代理端口。
以iPhone为例,其设置如下图所示:

当然,如果APP走的是HTTPS通道,仍然需要安装证书才能正常访问,这里安装证书的过程,我没有写上来,网上有很多写得比较好的。

0x03 多重代理的情形

在某些网络环境中,访问目标网站需要走代理。比如说,为了访问google.com,

我已经提前搭配好了一台M国的代理服务器

(如果不清楚怎么搭建代理服务器的话,推荐看一下我的另一篇博文:linux搭建代理服务器 https://www.cnblogs.com/-mo-/p/11251369.html

现在我想对google.com进行渗透测试,那么该怎么设置浏览器代理?

这时候不能简单的把浏览器代理设置为BurpSuite,这样虽然可以进行抓包,但是没有了M国代理服务器的帮助,我们是无法访问google.com的,抓包也就没有意义了。这时候该怎么办?

在这种情况下,我们必须借助代理链了。

顾名思义,代理链就一系列的代理形成的链条。像刚才那种情形,我们首先设置浏览器的代理为BurpSuite以便能够抓包;然后为BurpSuite再设置一个上游代理即M国的代理服务器。

这样访问google.com时,请求数据先经过BurpSuite,于是可以进行抓包了;然后再流向M国的代理服务器,最后经过本地服务器到达google.com。

服务器端返回的响应则刚好相反。通过这个BurpSuite ==> M国代理服务器的代理链,我们就解决了本节开头所描述的问题。

作为一个神器,BurpSuite是具备这个功能的。

在BurpSuite的User options下的Connections页面中,有『Upstream Proxy Servers』和『SOCKS Proxy』这两个配置项,都是跟代理链相关的。接下来逐一进行说明。

3.1 Upstream Proxy Servers

在该设置项中,可以设置多个上游代理服务器规则,满足规则的请求将被发送至相应的代理服务器。只说概念过于无聊,这里就以chaipip.com(一个查询IP地址的网址)为例,进行说明。

为了对chaipip.com进行抓包分析,我们首先要设置浏览器的代理为BurpSuite,这一点是毫无疑问的。

为了能够通过代理访问chaipip.com,还需要设置BurpSuite的上流代理为(113.121.20.183:9999)(这个上流代理也就是上文所说的那台代理服务器的IP及端口)

点击Upstream Proxy Servers列表框左侧的Add按钮,打开『Edit upstream proxy rule』对话框。

这里一共有8个设置项,一般情况下只需关注前4个:

  • Destination host:这里填入目标网站域名或者IP,支持通配符(*表示0个或者任意个字符,?表示除点号之外的任意一个字符)。在本例中,我们可以填入*.chaipip.com。

  • Proxy host:填入代理服务器的IP地址,即113.121.20.183。如果为空表示直接连接。

  • Proxy port:填入的代理地址,即9999。

  • Authentication type:这里选择认证类型,由于这是免费使用的一个代理,无需认证,这是选择None。如果Authentication type为None,则接下来的4项内容无需理会,否则需要根据实际情况设置以下4项内容。

  • Username:用户名。

  • Password:密码。

  • Domain:域。仅用于NTLM认证类型。

  • Domain hostname:域主机名。仅用于NTLM认证类型。

设置内容如下图所示,最后点击OK即可。

这时候,你通过浏览器使用的本地代理选项,会发现chaipip.com所显示你的IP为刚刚设置的代理服务器的IP,并且BurpSuite中也成功地抓取到了相应的请求报文。

你可以同时设置多个Upstream Proxy Servers,在使用过程中,BurpSuite会按顺序将请求的主机与Destination host中设置的内容进行比较,并将请求内容发送至第一个相匹配的Proxy server。

因此,Proxy Server的顺序很重要,讲究个先来后到!

3.2 SOCKS Proxy

与Upstream Proxy Servers的作用类似,SOCKS Proxy的功能也是将请求内容发送至相应的代理服务器。不同之处在于,SOCKS Proxy作用于TCP协议层,因此如果设置了该项,那么所有的请求数据都会被发送至SOCKS代理服务器。所以,SOCKS Proxy的设置更简单。同样以免费的代理服务器为例,先在下方的输入框中依次填入SOCKS代理服务器的IP、端口(如果SOCKS代理服务器需要认证,还需要填写用户名和密码),然后勾选Use SOCKS proxy即可。

需要注意的一点是,如果同时设置了Upstream Proxy Servers和SOCKS Proxy,则根据规则应该发送至上游代理的请求将会通过SOCKS Proxy发送。

0x04 参考链接

https://www.anquanke.com/post/id/85925

[WEB安全]给BurpSuite设置非本地的网络代理的更多相关文章

  1. Android开发中网络代理设置实用总结

    一.背景 进行Android项目开发时,跟网络代理基本上天天都在打交道.通常情况下,至少有三个场景中经常用到网络代理: 1,经常通过Chrome访问Google等国外的技术网站,如通过SS工具等: 2 ...

  2. 非本地跳转之setjmp与longjmp

    非本地跳转(unlocal jump)是与本地跳转相对应的一个概念. 本地跳转主要指的是类似于goto语句的一系列应用,当设置了标志之后,可以跳到所在函数内部的标号上.然而,本地跳转不能将控制权转移到 ...

  3. gerrit设置非小组成员禁止下载代码

    对gerrit有所了解的同学,都知道gerrit 是我们常用的一个来做代码审核的工具,其中的权限管理,是一个非常重要的环节,关于每个权限的使用范围,可以参考博客https://blog.csdn.ne ...

  4. 设置 Nuget 本地源、在线私有源、自动构建打包

    设置 Nuget 本地源.在线私有源.自动构建打包 本文演示如果在项目中生成 Nuget 包,并添加 Nuget 本地源,不用发布到 Nuget 服务器.再附带使用在线私有源的简单方法,以及提交代码自 ...

  5. 解决eclipse中自带的maven搜索不到非本地第三方包问题

     解决eclipse中自带的maven搜索不到非本地第三方包问题   版权声明:本文为博主原创文章,未经博主允许不得转载. 最近使用eclipse中的maven插件时发现,在pom.xml文件中添加第 ...

  6. Keil MDK下如何设置非零初始化变量

    一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始 ...

  7. Keil MDK下如何设置非零初始化变量(转)

    源:Keil MDK下如何设置非零初始化变量 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默 ...

  8. 如何设置非管理员用户配置特定的IIS站点

    如何设置非管理员用     户配置特定的IIS站点 一.           添加IIS管理服务 二.           启动管理服务 勾选启用远程连接后.点右边的应用 三.           设 ...

  9. Maven教程--02设置Maven本地仓库|查看Maven中央仓库

    一:设置Maven本地仓库 Maven默认仓库的路径:~\.m2\repository,~表示我的个人文档:例如:C:\Users\Edward\.m2\repository:如下图: Maven的配 ...

随机推荐

  1. 编写Postgres扩展之一:基础

    原文:http://big-elephants.com/2015-10/writing-postgres-extensions-part-i/ 编译:Tacey Wong Postgres提供了广泛的 ...

  2. kvm第二章--虚拟机管理

  3. vue的事件对象

    事件对象: v-on:click/mouseover 简写:     @click=""   @click="show($event)" <input t ...

  4. pycharm中文乱码

    python2默认不支持中文,python3支持中文,所以使用python2要注意. 解决方案: 顶部声明一下是utf8编码即可,   # encoding=utf8

  5. 只需五分钟-用Maven快速搭建Spring Cloud微服务

    Maven安装手册 1.准备安装包 安装包: apache-maven-3.5.4-bin.zip  (最好JDK 1.7及以上版本) 集成包: eclipse-maven3-plugin.zip 2 ...

  6. Vue指令之`v-for`和`key`属性

    2.2.0+ 的版本里,**当在组件中使用** v-for 时,key 现在是必须的. 当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “**就地复用**” 策略.如果数据项 ...

  7. Django组件之modelform

    Django的model form组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样 ...

  8. WebClient 与HttpClient 的区别

    需要搜索下资料. -------------------------------------------------- 微软文档介绍,新的开发中推荐使用:HttpClient WebClient 文档 ...

  9. python3 wordcloud词云

    wordclou:根据文本生成词云 一.词云设置 wc=WordCloud(width=400, height=200, #画布长.宽,默认(400,200)像素 margin=1, #字与字之间的距 ...

  10. LG3690 【模板】Link Cut Tree 和 SDOI2008 洞穴勘测

    UPD:更新了写法. [模板]Link Cut Tree 给定n个点以及每个点的权值,要你处理接下来的m个操作.操作有4种.操作从0到3编号.点从1到n编号. 后接两个整数(x,y),代表询问从x到y ...