burpsuite擴充套件開發之Python

wyzsk發表於2020-08-19
作者: 路人甲 · 2015/04/24 10:10

0x00 簡介


Burpsuite作為web測試的神器,已經人手必備了。它提供的一系列互相配合的工具,極大的提高了手工測試的效率,從1.5版本開始,Burpsuite開始支援擴充套件。使用者可以自己開發擴充套件實現一些特殊的需求。不過目前關於Burpsuite擴充套件開發的中文資料很少。這裡拋磚引玉總結一下學習的過程。

0x01 基礎知識


目前burpsuite官方支援用java,python,ruby開發擴充套件,選擇還是很多的。Brupsuite的擴充套件可以實現非常多的功能,比如自定義掃描,修改http請求和響應,修改burp配置等等。幾乎所以burpsuite功能都支援在擴充套件中進行控制。所以其實是可以用擴充套件把自己經常使用的功能做成自動化的。這也應該是一個最終的學習目標。官方文件是首選的資料。中文介紹資料可以參考BurpSuite擴充套件API和HelloWold

0x02 環境配置


安裝python開發的擴充套件需要配置Jython環境。Jython下載直接下載Standalone Jar版本就可以。在extender標籤頁中選擇options標籤。在python environment中選中剛剛下載的jython standalon jar。

images

如果下載的是jython installer。需要在安裝的時候選擇standlone型別。之後再在burpsuite中選擇安裝目錄下的jython.jar.

如果沒有配置好jython環境。新增python編寫的擴充套件會報錯。

0x03 常用介面介紹


burpsuite的文件中給了多個樣例以及詳細的API文件

個人覺得最快的方法還是閱讀現成的擴充套件程式碼。很多需求稍微修改現成的擴充套件就可以完成。Burp的Bapp store裡的擴充套件安裝之後預設是在burpsuite同目錄下的bapps的資料夾內。

簡單介紹一下幾個最常用的介面:

interface IBurpExtender: 這個介面所有的擴充套件都需要實現.

Interface IBurpExtenderCallbacks: 這個介面幾乎是必備的。在編寫擴充套件的過程中會經常用到。

Interface IExtensionHelpers: 這個介面是新加的。提供了編寫擴充套件中常用的一些通用函式,比如編解碼、構造請求等。這樣就不需要重負造輪子了。

Interface IHttpRequestResponse: 這個介面包含了每個請求和響應的細節。在Brupsuite中的每個請求或者響應都是IHttpRequestResponse例項。

0x04 第一個burpsuite擴充套件


在web測試過程中,使用repeater除錯介面是很常見的一個使用方式。現在很多介面都是返回包含unicode明文的json資料,比如這種

{"result":"passwd_error","msg":"\u7528\u6237\u540d\u5bc6\u7801\u9519\u8bef"}

由於brup的decoder沒有對unicode的解碼,每次想要看一下這些unicode是是什麼意思的時候都需要複製出來使用其他工具解碼。可以使用burp擴充套件來實現自動解碼unicode,從而提高測試的流暢性。

首先引入所需要的模組,在BurpExtender類中定義我們需要的方法。

toolFlag是burpsuite中對工具進行識別的方式,proxy是4,repeater是64.可以在文件裡檢視所有工具對應的flag值。這裡幾行程式碼就是先解碼返回值,查詢unicode明文,進行解碼,之後再更新響應的body。

載入擴充套件之前,repeater看到的返回:

載入擴充套件之後:

程式碼下載地址:github

0x05 相關資料


BurpSuite 擴充套件開發[1]-API與HelloWold burpextensions.com

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章