Burp Suiteを触ってみる（Proxy機能）

#Burp Suiteを触ってみる（Proxy機能）
##はじめに
プロキシツールBurp Suite（無料版）を使ってみました
なんのことかさっぱり、な状態からやっとProxy機能を動かせたので記録を残しておきます


以下流れ

- そもそもBurp Suiteとは
- 起動してみる
- ローカルのアプリケーションに対して動かす
    - ポート設定
    - レスポンス設定
    - ページにアクセス（ここで詰まりました）
    - 動かし方、値を改ざんして送る
- おわり
- 参考サイト



##そもそもBurp Suiteとは
Burp Suiteはプロキシツールです
HTTPリクエストやレスポンスを中継して、中身を確認、改変することができ、
リクエストを改変したテストをすることができます

※プロキシツール
→ブラウザとサーバ間のHTTP通信をキャプチャし、通信内容を閲覧および改竄できるツール

※ローカル環境でやりましょう
リクエスト改変を外部サイトで行うと法にひっかかります

##起動してみる
インストールは省略します

アイコンを押下で↓の画面が出てきます
Nextで次へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1733797/44003575-3d0b-9350-226b-7bcb1a8a7f61.png)

次の画面もそのままStartで大丈夫です
進むと↓こんな感じの画面が開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1733797/5ae87508-c271-9644-eac3-3181b0c2962e.png)

##ローカルのアプリケーションに対して動かす
###ポート設定
参考サイトを見つつ、まずはポートの設定です

が、その前にいったんProxy-Interceptにいって
「Intercept is on」になっていたら「Intercept is off」にしておきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1733797/ec52deb4-ee2f-6f77-8a4e-39af78d0601a.png)


次にProxy-OptionsからProxy Listenersを開きます
デフォルトでは8080になっていますが
今回ローカルで動かすアプリケーションで8080を使用するため
別の任意のポートをAddから追加、使うものにチェックを入れます
今回は8088にしてみました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1733797/4b019261-e9d9-418f-30bf-0c3f689f49d0.png)


###レスポンス設定
同タブの下にあるIntercept Server Responsesを見てみると
Intercept responses based on the following rules:　のチェックがあります
ここをチェック。応答もキャプチャできるようになります

さらに下にある
Response Modificationから
Unhide hidden form fields　にチェック
非表示のフィールドを表示します（必要に応じて）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1733797/e2456c4f-0a32-8d67-b092-083fba6c0f19.png)

###ページにアクセス（ここで詰まりました）
ここでブラウザ側にも↑でBurp Suiteに追加したのと同じポート（8088）を設定します
が、私はここで詰まりました

chromeの場合、chromeの拡張機能「Proxy SwitchySharp」を追加、
Burp Suiteと同じポートを設定して切り替えて使う……のはずが
うまく連携できずに苦戦

そこでやり方を変えまして
Proxy-Interceptに「Open browser」があるのでここからブラウザを開きます
開いたブラウザからローカルで動かしているアプリケーションにアクセスします

これでうまく動いたのでいったんこの方法で進めます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1733797/62d7b6ca-2121-fb1a-c71a-cf4c2dca7cce.png)
↑　で開いたブラウザでアプリケーションに接続

###動かし方、値を改ざんして送る
ここから動かしてみます
まず、確認したい、改変したいリクエストを送るページを表示します

その状態でBurpSuiteのProxy-Interceptから「Intercept is on」にします
「Intercept is on」のまま、ブラウザからリクエストを送ります

するとリクエストがBurp Suiteで止まるはずです
ブラウザ側は処理が完了せずにぐるぐるしていてページはそのまま、
Burp Suiteにリクエストが表示されていればうまく動いています

この後「Forward」を押すことでBurp Suiteからリクエストが送られて
ブラウザにレスポンスが返って表示されます

改変したい場合はここでいじります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1733797/5a6acbbc-3907-d5c4-2987-310d3984bdd7.png)
↑
この下の部分に情報がでてくるはずです

書き換えて「Forward」、「Intercept is on」押下で止めていた通信を送ります
ぐるぐると読み込んでいたブラウザも処理が進むはずです

ブラウザを確認すると改変した内容が表示されています

Burp SuiteのProxy-HTTP historyから送信された通信を見ることができます

##おわり
まだあいまいな部分が多いですが
動かすところまでは進めることができました

Proxy以外の機能はまだまだまだ不勉強なのでそのあたりも
今後触っていきたいです

##参考サイト
https://persol-tech-s.co.jp/corporate/security/article.html?id=10
https://www.as-lab.net/howto-use-localproxy/
https://tech.pjin.jp/blog/2016/07/15/burp-suite-1-7%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%80%80%E3%81%9D%E3%81%AE%EF%BC%92/
https://cysec148.hatenablog.com/entry/2020/03/02/153637
https://burp-resources-ja.webappsec.jp/Documentation/burp/documentation/desktop/penetration-testing/index.html