burp插件開發--基礎篇


最近這幾天在寫burp的插件,有一些寫burp插件的流程和誤區想跟大家分享一下:

第一步,打開burpsuit,打開extender頁面,並將burp中自帶的api代碼導出,方便后續的代碼開發;

第二步,使用idea創建一個java項目並將上一步導出的api代碼導入到該項目中;

第三步,在導入的項目中創建一個叫BurpExtender.java的類並Implements  IBurpExtender這個類,注意,必須叫這個名字,否則burp會識別不到此插件的存在,如上圖;

第四步,在BurpExtender中書寫,你想要的代碼;

1. 首先需要定義全局變量,如下圖:

public class BurpExtender implements IBurpExtender {

 

   IExtensionHelpers helpers;

    PrintWriterstdout;

   IBurpExtenderCallbacks mCallback;

2. mCallback 此變量是在書寫burp插件中最必不可少的變量,如果你需要調用你所導出的api的函數的話,必須要用mCallback先注冊一下,如下;

 

 @Override

    public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) {

        // set our extension name

        mCallback = callbacks;

       mCallback.setExtensionName("Active Scanextension");//插件名字

        //mCallback.registerContextMenuFactory(this);

       //調用burp對圖形化界面進行編輯

       mCallback.registerHttpListener(this);

      //調用burp的進程監聽,可以獲取burp的所有進程,並加以更改

       mCallback.registerScannerCheck(this);//調用burp中對掃描的check模塊

        //在初始化的時候將burp設置成不攔截模式

        mCallback.setProxyInterceptionEnabled(false);

        //mCallback.registerScannerListener(this);//調用burp掃描模塊

        helpers = mCallback.getHelpers();

        //callbacks.getHelpers() 常用輔助方法

        // obtainour output and error streams

        stdout = new PrintWriter(callbacks.getStdout(), true);

        PrintWriterstderr = newPrintWriter(callbacks.getStderr(), true);

 

        // write a message to our output stream

        stdout.println("Hellooutput new ");

 

    }

3. 上述函數為burp中自帶函數,並在加載插件時自動調用並運行的函數,同時注冊的時候,還要實現相應的interface類;

4. helps變量在實現時應使用mCallBack此變量進行初始化;

 

helpers = mCallback.getHelpers();

//以下為簡單的helps調用

//methodburp捕捉的請求所發送的method,如getpostoptions

String method =helpers.analyzeRequest(baseRequestResponse).getMethod();

//urlburp捕捉到的請求所發送的url

String url =helpers.analyzeRequest(baseRequestResponse).getUrl().toString();

 

5. 其中helps包含你需要burp此軟件傳入給你的任意變量和之前burp所具有的功能,如下圖,舉例getRequestParameter代表獲取傳入的request變量;

6.stdout代表需要在burp自帶的插件頁面上打印出來的東西,如下圖;

//初始化stdout

        stdout = new PrintWriter(callbacks.getStdout(), true);

        PrintWriterstderr = newPrintWriter(callbacks.getStderr(), true);

        // write a message to our output stream

        stdout.println("Hellooutput new ");

 

7.在下圖標紅的地方打印出來你需要打印出的東西如log、error,同時burp具有專門打印錯誤的函數,使用方法和stdout相同

 

下一篇文章講如何寫真正的burp插件,並實現burp發送郵件功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM