如何在特定的渗透测试中使用正确的Burp扩展插件

时间:2022-04-29
本文章向大家介绍如何在特定的渗透测试中使用正确的Burp扩展插件,主要内容包括写在前面的话、开发环境搭建、获取代码、验证环境(Java only)、采用&测试修改、后话、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

写在前面的话

Burp Suite是很多渗透测试人员会优先选择使用的一款强大的平台,而且安全社区中也有很多研究人员开发出了大量的功能扩展插件并将它们免费提供给大家使用。这些插件不仅能够简化渗透测试的过程,而且还能够以各种非常有趣的方式进一步增强Burp Suite的功能。

实际上,其中的很多扩展插件都是为解决特定问题而存在的。换个角度来看,我们如何能够选择和调整特定的扩展插件以更好地满足我们的需求呢?这就是本文想要跟大家分享的东西了。

一般来说,想要修改第三方Burp扩展往往是非常困难的,不过整个安全社区也在努力让所有的Burp扩展实现开源,并使用类似的扩展构建方法来设计这些扩展插件。在这篇文章中,我们将简单地告诉大家如何自定义修改一款Burp扩展,并且根据自己的渗透测试和安全审计的需求来搭建出一个高效的Burp环境。

接下来,我会对著名的Collaborator Everywhere扩展进行个性化修改,并让它能够注入额外的查询参数以尝试检测出SSRF漏洞,最后通过HUNT扩展来进行漏洞验证。

开发环境搭建

首先,我们要创建出自己的开发环境。为了使用Java来编辑扩展插件,我们要安装Java JDK以及Gradle。如果扩展使用的是Python或Ruby,那你就不用安装Java相关的组件了,不过 Git还是会使用到的。

获取代码

接下来我们要获取目标扩展的源代码。访问https://portswigger.net/bappstore搜索你的目标扩展,然后点击页面的“View Source Code”按钮。点击之后你将跳转到扩展的GitHub页面(以Collaborator Everywhere为例-【GitHub主页】),然后你可以选择下载ZIP包或直接在终端使用Git命令将项目代码克隆到本地。例如:

git clonehttps://github.com/portswigger/collaborator-everywhere

验证环境(Java only)

在你开始修改之前,你要确保你已经成功构建了jar包并将其加载进了Burp。如果你不知道如何构建jar包的话,你可以查看BappManifest.bmf文件中的BuildCommand相关内容。就CollaboratorEverywhere来说,我们可以直接使用命令gradle fatJar来完成构建。

采用&测试修改

如果你成功将新构建的jar文件加载进了Burp并且能正常工作的话,你就可以准备开始修改代码并进行重构了。

Collaborator Everywhere会从项目目录resources/injections中读取payload,所以我可以在没一个参数后面添加一行我想要注入的内容即可。比如说,下面这行代码会添加一个名叫‘feed’的GET参数,并以HTTP URL的形式呈现:

param,feed,http://%s/

如果哪一个特定的Payload触发了错误异常的话,你可以直接用#将其注释掉之后再慢慢调试。

接下来,我们可以通过观察扩展的流数据(请求和响应)来判断修改操作是否成功。下图显示的是修改后的扩展运行情况,表明我们自定义的扩展已经能够正常工作了:

最后需要提醒大家的是,不必要的修改很可能会带来负面影响噢!

后话

如果你想与安全社区分享你自定义的增强版扩展,你可以向PortSwigger库提交扩展插件(pull request),或单独建立一个GitHub代码库。

某些扩展插件可能修改起来会非常的困难,但是考虑到开发环境的搭建并不难,所以我建议大家可以尝试去个性化修改一些Burp扩展,因为这也是一个学习和积累经验的过程嘛!