Please enable Javascript to view the contents

Burpsuite 实践与 Web 越权攻击

 ·  ☕ 4 分钟

1. Burpsuite简介

Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。
所有的工具都共享一个能处理并显示HTTP 消息、持久性、认证、代理、日志、警报的一个强大的可扩展的框架。

  • Proxy——是一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
  • Spider——是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
  • Scanner[仅限专业版]——是一个高级的工具,执行后,它能自动地发现web 应用程序的安全漏洞。
  • Intruder——是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
  • Repeater——是一个靠手动操作来补发单独的HTTP 请求,并分析应用程序响应的工具。
  • Sequencer——是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
  • Decoder——是一个进行手动执行或对应用程序数据者智能解码编码的工具。
  • Comparer——是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。

2. Burpsuite配置

由于Burpsuite基于java开发,运行时需要jre。在Oracle下载安装jdk安装后,还需要添加环境变量。

1
2
3
JAVA_HOME   C:\Program Files\Java\jdk1.8.0_111(替换为自己的安装目录)
PATH    ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH   .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

Burpsuite官方地址,下载到本地之后,可以直接运行。
依次使用默认配置选项,【Temporary project】-> 【Use Burp defaults]。进入如下界面:

点击【Proxy】-> [Options]可以查看到Burp提供的代理接口,默认为127.0.0.1:8080

burp的原理是通过充当客户端与服务器直接的代理,实现对连接的修改和控制。所以,在本地进行调试是需要在浏览器中设置代理,用以实现对连接请求的修改。如果是使用Chrome浏览器,那么直接安装switchyomega插件,如果是FireFox,可以使用FoxyProxy插件。如果是IE,可以直接使用127.0.0.1:800作为代理,使用插件的目的只是为了能够方便的切换代理。

在switchyomega中【新建场景模式】,设置http代理,代理服务器127.0.0.1,端口8080。
然后访问,http://burp/,点击下载CA Certificate,将证书安装在【受信任的根证书颁发机构】。如果不安装burp提供的证书,是使用burp代理访问https请求是会出现【您的链接不安全】字样。从这里可以看出,https连接能够抵御中间人攻击。安装之后,在证书里面查看,能够找到PortSwigger这个证书。

3. Burpsuite 使用

3.1 越权的原理

越权描述的是对没有授权的业务进行访问和操作。如上图,人员A只对a业务有权限,人员B只对b业务有权限,如果通过某种方式人员A访问了b业务,那么就判定为越权。这里有一个前置条件就是人员A、B都能够通过平台的验证系统,只是业务上存在隔离。如果不刻意验证权限,一般情况下通过一定的工具修改请求的参数,是很容易进行越权操作的。

由于发起请求时,平台验证的tokenID等信息会一同发送,并通过平台的验证系统,而越权访问业务直接通过修改url路由和请求参数即可完成。

3.2 Burpsuite 实践

  1. 首先需要将浏览器代理切换到 burp
  2. 在 BurpSuite 中依次打开【proxy】-> 【intercept】->【intercept is on】
  3. 浏览器访问 URL
  4. BurpSuite 将请求拦截下来,修改请求头。
    这里的/api/posts/20045768/contributed 就是访问的路由,可以看到路由中有20045768,通常是文章的ID编号,通过修改这个编号,来访问其他文章的内容。

还有一部分是 cookie 中个人的登录信息,如果其他人拿到了你的这部分信息,就可以通过这部分的信息来伪造登录。

在【Params】分页中,可以随意的修改请求参数


  1. 【Forward】,释放修改后的请求,等待服务器返回结果

微信公众号
作者
微信公众号