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

  関連記事

Android 非同期処理についてまとめてみた

Androidには、UIに影響を与えないよういくつか非同期処理が用意されています。 今回は非同期処理の代表的な ・Service ・IntentService ・HandlerThread について違いを踏まえながらまとめます! 非同期処理について(http://codezine.jp/articl …

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

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

Scala番外編「Boxに保存したファイルをBox APIを使ってダウンロードしよう!」

はじめに みなさんこんにちは、プロダクト開発本部の亀梨です。 普段はXmediaOneというメディアプランニング・広告運用管理・トラッキング・マーケティング分析を行う 統合プラットフォームの開発を担当しています。 Box APIを使う背景・目的 DACはメディアレップです メディアレップとは、インタ …

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

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

【小ネタ】タスク管理ツール移行: Trello から Asana

  プロジェクトチームのタスク管理ツールを Trello から Asana に変えることになり、 タスクの移行が意外と簡単にできた、というお話です。 Trello と Asana もともと使っていたのは Trello(トレロ)です。 プロジェクト > タスクグループ > タスク …

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

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

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

今回は、せっかくRailsで開発したアプリをAWS上に公開してみたいので その構築方法をまとめていきたいと思います。 (前回の記事:初心者がRailsで開発 – deviseでユーザー認証設定 ) AWSの設定はすでに社内で使用できるようになっていたので割愛します。 ★やりたいこと Gitlabでコ …

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

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

Charlesを使ってスマホアプリ(iOS)のUAを調べてみた

はじめに ここ最近のスマホアプリには、Webブラウザの機能を実装したものが少なくありません。 (“スマホアプリ内で立ち上がるブラウザ「アプリ内ブラウザ」”の機能は「WebView」というコンポーネントを用いて実装されています。) 昨今のWebサイト、サービス運営に於いて、「通 …

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

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