LoginSignup
16
4

More than 5 years have passed since last update.

Burp Suite Extender を作ってみた(CopyRequestTsv)

Last updated at Posted at 2017-03-14

概要

2016年11月に行われた Burp Suite Japan LT Carnival に参加して自分でも拡張機能を作ってみたくなりました!

脆弱性診断業務でサイトの把握のためにExcelでURL一覧を作成しています。
Burp Suiteからリクエスト情報を一括取得できる機能が欲しかったので、ブログ等で公開されている技術情報を参考に作りました。

HTTPリクエストに使われてそうなパラメータをTSV形式でクリップボードにコピーする拡張機能です。
よければ使ってみてください!

使い方など

ソースはこちら
https://github.com/toubaru/burp-copy-request-tsv

バイナリはこちら
https://github.com/toubaru/burp-copy-request-tsv/releases

から取得できます。

導入手順

  1. バイナリをダウンロードします。
  2. Burp Suiteを起動し、拡張機能を追加します。
    • Extender > Extensions > Burp Extensions > Add で Load Burp Extension 画面が開きます。
    • Extension Details を設定して拡張機能を登録します。
      • Extension type: Java
      • Extension file (.jar): ダウンロードしたバイナリを選択

使い方

  1. 右クリック > Copy Request TSV (Full) でリクエスト情報をクリップボードへコピーします。
  2. HTTPリクエスト情報をExcelへ貼り付けられます。

Googleスプレッドシートにも貼り付け可能です。

動作確認環境

Windows 7
Java 1.8.0
Burp Suite ※Professional版で使ってますが、Free版でも一応動いてます

  • Professional v1.7.15
  • Free v1.7.10

経緯

脆弱性診断を始める前にサイトを把握するため、サイトをクロールしてURL一覧を作成しています。

ショートカットを駆使してもURL取得やパラメータの取得などにどうしても時間が掛かってしまうため、作業を効率化したいと考えました。

サイトが全て確認できるまで以下の作業を繰り返しています。

  • Excelへ画面遷移を記載(パンくずリストみたいな感じです)
  • Burp Suite > Proxy > HTTP History での操作
    • URLをコピー -> Excelへ転記
    • paramsタブからパラメータをコピー -> Excelへ転記
    • (あれば)jsonパラメータをコピー -> Excelへ転記

結果、下記のような一覧が出来上がります。

画面遷移 メソッド URL 種別 KEY VALUE
TOP GET http://hogehoge/ - - -
Header Host hogehoge
TOP > ログイン POST http://hogehoge/login - - -
Path 1 login
Header Host hogehoge
Header Referer http://hogehoge/
Cookie _session hoge
Body login_id testuser01
Body password 1234
TOP > ログイン > メニュー GET http://hogehoge/menu - - -
Path 1 menu
Header Host hogehoge
Header Referer http://hogehoge/
Cookie _session fuga

今回の拡張機能で遷移以外の項目を右クリックからの操作でクリップボードにコピー可能です。
あとはExcelに貼り付けるだけです。
※複数のURLを選択することで一括取得することもできます。

コピー形式(サンプル)

下記の形式でコピーできます。下記はPOSTの例です。

POSTリクエスト

method url type key value
POST http://hogehoge/registUser - - -
Path 1 registUser
Header Host hogehoge
Cookie _session hoge
Body name hoge
Body name hoge@hoge

POSTリクエスト(JSON形式の場合)

method url type key value
POST http://hogehoge/registUser - - -
Path 1 registUser
Header Host hogehoge
Cookie _session hoge
Body jsonData[name] hoge
Body jsonData[mail] hoge@hoge

仕様

コピー形式について

  • method(タブ)url(タブ)種別(タブ)key(タブ)value
  • 種別は下記5種類になります。
    • Path
    • Header
    • URL
    • Cookie
    • Body
  • JSON形式のデータの場合、keyはjsonDataという連想配列で保持しています
  • 可能な限りExcelで俯瞰できるようにしたいため、valueが null or バイナリ形式 の場合、下記文字列に変換しています。
    • (null)
    • (binary)

補足

不具合あればコメントで教えていただけると助かります!

また、拡張機能の開発にあたり、たくさんのサイトを参考にさせていただきました。
何か問題等ありましたら教えていただけますと幸いです。

参考リンク

16
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
4