Burp Suite とはなんぞや ！+ Proxy の設定

## Burp Suite とはなんぞや！

```text
Simply put, Burp Suite captures and enables manipulation of all the 
HTTP/HTTPS traffic between a browser and a web server...By intercepting 
requests, users have the flexibility to route them to various components 
within the Burp Suite framework...The ability to intercept, view, and modify
web requests before they reach the target server or even manipulate 
responses before they are received by our browser makes Burp Suite an 
invaluable tool for manual web application testing.
```

曰く、**「ブラウザとWebサーバ間のトラフィックを傍受してリクエストを読み取ったり、改変して転送することができる」** ツールとのこと。すごい。

ツールは無料版 ( Community Edition ) と 有料版 ( Professional ) が存在しており、
無料版でもすでに便利だが、有料版だと更に以下のような機能が追加・拡充される

- 自動での脆弱診断
- fuzzer / brute-forcer のレート上限の撤廃（無料版は上限あり）
- プロジェクトの保存やレポート生成
- API を利用したほかツールとの連携
- 拡張機能への無制限アクセスによる機能改善の可能性
- [Burp Suite Collaborate](https://portswigger.net/burp/documentation/collaborator) の利用 

また、Enterprise (法人向け）もあるがここでは割愛。

## 主要機能
Burp Suite の主要機能は <font color="Red">**Proxy, Repeater, Intruder, Decoder,Comparer, Sequencer**</font>

**Proxy** : 
おそらくいちばん用途として使われている機能。ウェブリクエストとレスポンスを傍受・改変することが可能。一般的にはブラウザといっしょに使う。

**Repeater** : 
リクエストの傍受、改変と再送信（リピート）を行うことが可能。Proxy とは違うのは HTTP リクエストを直接 Burp から送ることが可能。

**Intruder** : 
Brute-forxe や fuzzing に使える機能。リクエストをバンバン送ることが可能だが、無料版には上限が突いている。

**Decoder** : 
傍受したデータのデコード、送るデータのエンコードが可能。

**Comparer** : 
名前の通り。２つのデータを比較することが可能な機能。現段階では自分の能力的にはこの用途と有用性は不明。（ばっさり）

**Sequencer** : 
トークンやセッションIDの品質分析に有用性がある機能とのこと。現段階の自分のレベルでは使わなさそうなので、詳しくは[こちらの方のサイトを参照したほうが良いかも](https://cysec148.hatenablog.com/entry/2021/01/28/170022)


## DL / Proxy 設定

Kali や CTF の　Attakbox を利用している人の場合、Burp Suite の DL は不要だが、
なぜか自分の VMWare で使っている Kali は Burp Suite がなかったので、DL が必要でした。

DL サイトは[こちらから](https://portswigger.net/burp/releases/professional-community-2024-11-2?requestededition=community&requestedplatform=
)。自分自身は M1 Macbook Air の　VMWare KALI のため, ARM バージョンのダウンロードでした。

ダウンロードが完了し、Temporary Project を開けると画面は ↓ の感じ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3981736/14338a7d-1b56-4d40-8b2c-dad2b51634f9.png)
Dashboard は４分割。

- Tasks: バックグラウンドで行ってくれるタスクを設定・管理が可能

- Event log: Burp Suite で行われたアクション履歴がここに残る。例えば Proxy を使った場合は Proxy を利用した履歴が残る

- Issue Activity: こちらは有料版の機能。スキャンした際に見つけることができた脆弱性をリストアップする箇所

- Advisory: Issue Activity でみつけた脆弱性に関して更に詳しく記載されている箇所。対応策なども場合によっては書かれている

今回は THM の Burp Suite Basics を読みながらの学習でした。
Proxy を行うにあたり、Kali にプリインされている Firefox に ForxyProxy の拡張機能をまずダウンロードしました。

https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-basic/

この拡張機能を使うことによって ブラウザと Web サーバ間のコミュニケーションを傍受し BurpSuite にデータを転送することが可能に。

設定は Options > Proxy からまずは Proxy の作成。詳しい設定は[コチラの方の記事](https://www.leon-tec.co.jp/blog/10174/)でよいかと思います。

で、利用する際は特定の Proxy を クリックして ON 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3981736/db54a52a-0588-09a2-023c-39d6d250e672.png)

最後に、Burp に戻り、ブラウザにリクエストを飛ばす前に Proxy タブの "Intercept is on" を有効に。これでデータが下の画像のように飛んでくる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3981736/3aa24bb2-a14b-33f8-3db2-12390449ba41.png)

Target タブをクリックすると傍受したサイトの構造をツリー上で記録。便利や。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3981736/5515970d-1017-e0ba-ee19-252196c57c8a.png)

Burp が傍受している間、他のサイトのリクエストなども傍受してしまい、ツールにノイズがすごいことに。そこで、Settings > Proxy から Request/Response Interception rules で target scope を選定すると、指定したスコープだけを傍受可能にする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3981736/223d87b0-6d2e-963f-e426-c88904464ed0.png)