🙆

Burp Suiteのプロジェクトファイルを触ろう。

に公開

初期設定

この記事を参考に、環境を整えてください。

この記事のゴール

Burp Suiteのプロジェクトファイル内にある設定のImport/Exportができるようになることです。

公式サンプルコード

ないです。

JavaDoc

プロジェクトファイルのExport

GUI上からでもそこまで手間を掛けずにExportすることができるため、あまり使う機会もないかも知れません。
Burp Suiteを脆弱性診断チームで活用している場合に初期設定として共通の設定を持ちたい時があると思います。そういうときに使用するといいのかなと思っています。

使用するAPIは以下のとおりです。

  • api.burpSuite().exportProjectOptionsAsJson()
  • api.burpSuite().exportUserOptionsAsJson()
/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package org.httpRequestResponseHandler;

import burp.api.montoya.BurpExtension;
import burp.api.montoya.MontoyaApi;

public class App implements BurpExtension {

    @Override
    public void initialize(MontoyaApi api) {
        api.extension().setName("allScannerLogger");
        // Burp Suiteのプロジェクトレベルとして存在している設定をJSONで出力する。
        api.logging().logToOutput(api.burpSuite().exportProjectOptionsAsJson());
        // Burp Suiteのユーザレベルとして存在している設定をJSONで出力する。
        api.logging().logToOutput(api.burpSuite().exportUserOptionsAsJson());
    }

}

出力した結果は以下のようになります。
有効にすると出力されるため、Extention内でファイルに保存するか、Burp Suiteのログをファイルに保存する機能を使用して出力してあげると設定の統一ができます。

プロジェクトファイルのImport

上記と同様にプロジェクトの設定をチーム内で共有したいなどが候補に上がってきます。

使用するAPIは以下のとおりです。

  • api.burpSuite().importProjectOptionsFromJson("projectJson");
  • api.burpSuite().importUserOptionsFromJson("userJson");

このコードのままビルドして使用した場合、Extentionタブへの遷移ができない(Dashboardタブに戻される)事象が確認できています。
importUserOptionsFromJsonをコメントアウトすると解消したため、インポートする際はGUIから行ったほうが良いかも知れません。

/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package org.httpRequestResponseHandler;

import burp.api.montoya.BurpExtension;
import burp.api.montoya.MontoyaApi;

public class App implements BurpExtension {
    boolean flag = true;

    @Override
    public void initialize(MontoyaApi api) {
        api.extension().setName("allScannerLogger");
        // Burp Suiteのプロジェクトレベルとして存在している設定をJSONで出力する。
        String projectJson = api.burpSuite().exportProjectOptionsAsJson();
        // Burp Suiteのユーザレベルとして存在している設定をJSONで出力する。
        String userJson = api.burpSuite().exportUserOptionsAsJson();

        // Burp Suiteのプロジェクトレベルの設定が記載されたJSONをインポートする。
        api.burpSuite().importProjectOptionsFromJson(projectJson);
        // Burp Suiteのユーザレベルの設定が記載されたJSONをインポートする。
        api.burpSuite().importUserOptionsFromJson(userJson);

    }
}

結果画面は特に変わらないので、今回はありません。

Discussion