Burpの使い方!


こんにちは、第二ソリューション開発部の谷口です。

受託開発の部署で開発を担当してます。

APIを扱う機会が多く、今回は通信内容を確認するためのローカルプロキシツール「Burp」について書かせて頂きます。

Burpとは

Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確認するケースがあると思いますが
このような時にローカルプロキシツールはとても役に立ちます。
Burp Suiteは様々な機能を持っており、その中で私が最も使う機能は「Proxy」です。
診断やデバッグに必須の機能で、
APIからレスポンスは返ってきているのか?
無駄な通信処理は行ってないか?
などの通信処理を確認できるので、通信処理を行うアプリケーションには必須のデバッグツールとなっています。
ローカルプロキシツールは、クライアントマシン上で動作します。
これによりブラウザからのリクエストを一旦キャプチャして、
内容を変更した上でWebサーバへリクエストすることができるようになります。

Burpの設定では大きくPC側の設定(プロキシサーバの構築)と端末側の設定で分かれます。
プロキシサーバーを構築後、端末設定を行う必要があるため手順に注意して下さい。

PC側の設定(プロキシサーバ構築)を行う

Proxy(プロキシサーバ)とは

プロキシ(代理)という言葉が示す通り、インターネット上の目的のコンテンツ(Webページやファイル等)を
ユーザのコンピュータの代わりに取って来てくれる機能を提供するサーバです。
中継しているため、通信処理の取得が可能となっています。

1.Burp SuiteのFreeEditionをダウンロードし起動する

https://portswigger.net/burp/download.html

スクリーンショット 2017-01-27 19.06.22.png

2.Proxyを選択してIntercept offにする

スクリーンショット 2017-01-27 19.07.11.png

3.wifi環境を設定

スクリーンショット 2017-01-27 19.07.31.png

4.Addを選択しネットワークを選択する

スクリーンショット 2017-01-27 19.26.20.png

5.Specific addressを選択してBurpに加える

スクリーンショット 2017-01-27 19.24.44.png
これでPC側の設定(Proxyサーバー)の出来上がりです。

端末の設定を行う。

6.iPhone/Androdと繋げるため証明書を取得する

端末のブラウザを開き端末(スマートフォン)とPCが接続しているネットワークのIPアドレスを入力する。
CA certificateを選択して証明書をインストールする。
デフォルトだと拡張子は .derでダウンロードできる。
(Androidの場合拡張子は.cerに変更してインストールする必要がある)
[Screenshot_20170227-140313.png]

7.インストールしたらProxyをPCのBurpで設定したものと揃える

8.Burpを起動してHTTP historyを選択する

通信が見れます!

スクリーンショット 2017-03-10 20.26.26.png

これを使えば
通信処理のリクエストが送れているか?
レスポンスが返ってきているか?
どんな値が返ってきているのか?
などなど可視化できるようになります。

以上、Burpの説明でした。


DACエンジニア採用情報

  関連記事

x-callback-urlを使ってみた

x-callback-urlとは? iOSのアプリ間連携の仕様の一つみたいです。簡単に言うと、ディープリンクを行うためにカスタムURLスキームを利用するが、アプリ毎にバラバラな規則でURLスキームを設定するとアプリ間連携をスムーズに行うことができないため、どのような規則でURLスキームを設定するかを …

最強のSQLクライアント(GUIツール)「TeamSQL」を使ってみた!

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 エンジニアの皆さん、SQLクライアント(GUIツール)って何使ってます? わたくしはこ …

【HTML5】4ツール出力ファイルサイズ比較

こんにちは、近江です。 前回もHTML5のSwiffyについて書かせて頂きましたが、まだまだHTML5について調査しています。 今回はSwiffyを含めた4つのHTML5系ツールで、同じ素材で同じアニメーションを作成した時のファイルサイズを比較したいと思います。 何故ファイルサイズの比較をするかと言 …

ゼロからAngularでSPAを作ってみた(2) デプロイ・公開編

前回のおさらいと今回やること 前回(はじめてのアプリ編)では、Angular で簡単なチャットアプリを作るところまでやりました。ディレクトリ構成については説明できていなかったのですが、次のようになっています。(主なディレクトリとファイルのみ抜粋) + dist (ビルド・コンパイル後のファイルのディ …

kubernetes の全ノード上で同じコンテナを動かす

今回は、kubernetes上で同一コンテナを全ノードで動かす方法を紹介したいと思います。kubernetes自体の起動方法はここでは割愛します。 はじめに 以前、CoreOSのFleet上でmackerel-agentを動かすということを行いました。今回は、kubernetes上で同じようにクラス …

初心者がRailsで開発 – deviseでユーザー認証設定 –

こんにちは、2年目のYukaです。 開発部所属でありながら実は、、 実際に自分で手を動かして開発する機会がなかなかありませんでした。。 しかしついに、、、 開発初心者がRailsでWebアプリの開発に挑戦します!! 今回のゴールは社内でも使用しているGoogleアカウントで簡単にログインができるよう …

no image
AWSにRailsアプリをデプロイする(公開編)

次にデプロイするため“aws rails デプロイ”でググってみるとunicorn、nginxというキーワードがでてくるので とりあえずこれを設定していきます。   アプリのsecret_key_baseの設定 [crayon-5c174df46be88725846 …

自社サービスのDocker化(後編)

こんにちは。 インフラ開発部の上田です。 前回、前編としてDockerについて書き、早半年も経ちました。 前編はこちらです 今回は後編として、以下について書いてみたいと思います。 ■複数プロセス起動 前編で書いた通り、通常のOS起動時とは異なり、コンテナ上で個別にプロセスを起動する必要があります。 …

Vagrantの機能を使って開発環境の効率をあげてみた。

プラットフォーム・ワンのシステムの運用・保守担当のエンジニアです。 保守の仕事に関わると、 ユーザからのお問い合わせだったり、監視アラートによる検知から システムを調査することがあります。 ログとソースコードを見て、不具合を特定し改修する。 すぐできればカッコいいですが、 「本番環境に反映して別のエ …

fastavroとjqでAVRO形式のファイルからデータを取得しよう

AVRO形式のファイルを取り扱いたい AVROとはApacheプロジェクトのひとつとして開発されているデータ交換形式です。 コンパクトなバイナリで高速なシリアライズ・デシリアライズが行えるため、サーバーログなどに利用されています。 弊社内での一部システムのログデータにも利用されているのですが、専用の …