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エンジニア採用情報

  関連記事

Tableauを利用してMySQLとRedshiftのクロスDBジョインを実現する

はじめに RedshiftやTreasureDataなどのデータマート用のDBにはID単位の解析結果が格納され、ローカルのMySQLにはIDに紐づいた名称マスタが管理されている構成の場合、データマートのクロス集計結果に対してIDに紐づいた名称を付与したいことがあります。 データマート用に用意したDB …

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

こんにちは。 インフラ開発部の上田です。 普段は自社開発システムのインフラ担当として、日々頑張って仕事をしています。 今回は、近年話題になっているDockerについて、取り上げてみようと思います! なぜDockerなのか・・・? そもそもDockerとは何か・・・?   当社では様々なサー …

ゼロからAngularでSPAを作ってみた(1) はじめてのアプリ編

はじめに Single Page Application (SPA)って知っていますか? Webサイトでコンテンツのリンクをクリックした時に妙に表示が早いな〜というとき、実はページを移動するのではなくてページの一部のみを書き換えていたりします。 こういったサイトの作り方を Single Page A …

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

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

クラウド電話API “Twilio”で起こされてみた

どうも、開発部のクラヴマガです。 弊社サービスも最近はAWSの様なクラウド環境でサービスを構築することが多くなりました。 そこで問題になるのが、障害などによる深夜対応・・・。 データセンターに物理サーバをおいていた頃は、データセンターから障害発生時に 電話連絡をもらっていたのですが、クラウド環境では …

ゼロからAngularでSPAを作ってみた(3) CI: 継続的インテグレーション編

前回までのおさらいと今回やること 前々回(はじめてのアプリ編)と前回(デプロイ・公開編)で、作成した Angular のチャットアプリを Web に公開するところまでいきました。 でも、デプロイするのに、毎回決まったコマンドを打つのって面倒ですよね。 今回は GitHub でソースコードを管理して、 …

GCP上でCoreOSクラスタを作ってコンテナ起動をしてみた

Google Cloud Platform(GCP)上でCoreOS + etcd +  fleet + docker でコンテナ起動まで行ったので紹介したいと思います。 CoreOSの起動 CoreOSは、コンテナの実行環境を構築することに特化したLinuxディストリビューションです。 なお、この …

AWSのcredentialsを注意して取り扱う話

はじめに 最近ではオンプレミスでサーバを自前で用意する他に、クラウドサーバを使う機会が増えているかと思います。 弊社では、Amazon Web Services (AWS)を利用しており、多くの処理をAWS上で行っています。 AWSを利用していくにあたっては、アクセス情報(credentials)を …

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

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

Scala入門 準備編「開発環境構築」 – PHP使いからScala使いへ転身!

  はじめに みなさんこんにちは、今月入社しましたプロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 XmediaOneの開発で採用しているプログラム言語はS …