ホワイトハッカーへの道　一歩目


# はじめに

Webで入力フォームやAPIなど実装する際に気をつけたいことって色々ありますよね。
フレームワーク使うから安心と思っていませんか？そんなことはありません。

[XSS（クロスサイトスクリプティング）](https://qiita.com/ichimura/items/e91df821a32aefa21bda#_reference-cce3c9e3e193b942302b)や[CSRF(クロスサイトリクエストフォージェリ)](https://www.trendmicro.com/ja_jp/security-intelligence/research-reports/threat-solution/csrf.html)にはフレームワークが対応してくれていることが多いですが、作り方により入力フォームは[SQLインジェクション](https://blogs.mcafee.jp/sql-injection-prevention)、[OSコマンドインジェクション](https://www.shadan-kun.com/blog/measure/2873/)の入り口になってしまいます。

攻撃手法を理解した上で、開発ができるかいなかがエンジニアのスキルのみせどころです。
「彼を知り己を知れば百戦殆うからず」ということで、今回はWindows環境で脆弱性検証の環境作成をしてみました。
イメージは以下です。
![20180713_localproxy.jpg](https://qiita-image-store.s3.amazonaws.com/0/272635/06d8865e-4fa7-ce0f-2f59-8ab020c26900.jpeg)

## 環境

* Windows ７
* Chrome 71.0.3578.98
* Proxy SwitchyOmega　Version 2.5.20
* BurpSuite

## 手順

### SwichyOmegaインストール

ChromeのアドオンSwichyOmegaをインストールして有効化します
このアドオンでは検証したいサイトごとにproxyの設定をすることができます。
今回は後ほどインストールするBurpSuiteでローカルプロキシをしたいのでServerをlocalhostにします。
ブラウザがIEの場合はIE自体で設定できます。

![スクリーンショット 2019-02-09 3.02.44.png](https://qiita-image-store.s3.amazonaws.com/0/272635/5dd058b5-60f3-702d-140d-4ef5fe159068.png)

### BurpSuiteインストール

次にローカルプロキシツールとしてBurpSuiteをインストールします。
BurpSuiteはクライアント上で動作しブラウザからのリクエストを一旦キャプチャした上で
リクエストの内容を変更してPOSTすることができるようになります。
[こちらのサイトよりダウンロードします](https://portswigger.net/burp)

![スクリーンショット 2019-02-09 3.21.04.png](https://qiita-image-store.s3.amazonaws.com/0/272635/3f2ba55a-dd24-5cb5-1bce-4c75b9e9c226.png)
無料のcommunityよりDownloadし、インストールします。

インストール後、アプリケーションを立ち上げます。
![スクリーンショット 2019-02-09 3.24.51.png](https://qiita-image-store.s3.amazonaws.com/0/272635/c3d01ab3-4cfb-afa2-36c2-0ad5240b25cb.png)

Proxyを選択してIntercept offにします。
このInterceptでproxyを有効、無効にできます。
![スクリーンショット 2019-02-09 3.27.29.png](https://qiita-image-store.s3.amazonaws.com/0/272635/ff0d1923-5f08-7671-437d-d9a4d29ba624.png)

optionsをクリックしProxy　ListenersのRunnnigにチェックが入っていることを確認します。
デフォルトで以下のようになっていますが、ポート8080が他で使われている場合はRunnnigにチェックがつきません。ポート番号をSwichyOmegaと同様に変更してください。

![スクリーンショット 2019-02-09 3.29.22.png](https://qiita-image-store.s3.amazonaws.com/0/272635/38ad7c3d-a763-6535-d78d-ac6acfcdbbfb.png)

### SwichyOmegaのProxyを有効化

chromeのアドオンに下のようなブルーのリングのようなアイコンが、SwichyOmegaです。
ここから有効にします。
![スクリーンショット 2019-02-09 3.36.09.png](https://qiita-image-store.s3.amazonaws.com/0/272635/f808f1e7-13d1-43f7-6369-44778e224e64.png)

これで検証したいサイトがhttpの場合は設定は完了です。

今時httpのサイトって少ないので、httpsに対応させます。
証明書がない状態でhttpsにアクセスするとproxyできません。

https://www.google.co.jp/
![スクリーンショット 2019-02-09 3.36.16.png](https://qiita-image-store.s3.amazonaws.com/0/272635/82e8dfa3-7618-f111-d581-f2bdf67503b0.png)

### 証明書を設定

`http://127.0.0.1:8080`にアクセスし証明書をダウンロードします。
CA Certificateよりcacert.derという証明書ファイルローカルにダウンロードします。
![スクリーンショット 2019-02-09 3.40.12.png](https://qiita-image-store.s3.amazonaws.com/0/272635/b3b4b9c4-84b6-3fe4-ba2f-9b1c474f3ee8.png)

chromeの設定より証明書を常に信頼済みに設定します。
[こちらのサイトが参考になります](https://jp.globalsign.com/support/faq/558.html)
![スクリーンショット 2019-02-09 11.11.21.png](https://qiita-image-store.s3.amazonaws.com/0/272635/28fe32e4-cdd1-769c-a0a2-d66d764e4fa5.png)

証明書の登録が完了したら、
再度SwitchyOmegaを有効にし、BurpSuiteのIntercept onに

https://www.google.co.jp/
![スクリーンショット 2019-02-09 11.24.27.png](https://qiita-image-store.s3.amazonaws.com/0/272635/608cbadf-7a95-9b33-479f-65384a73781e.png)
![スクリーンショット 2019-02-09 11.24.20.png](https://qiita-image-store.s3.amazonaws.com/0/272635/844052f6-fed5-273b-2ee7-0c1fb78944dd.png)
Rawデータが取得できていれば設定が完了となります。
ここからがホワイトハッキングのスタートです。

二歩目は「[ファイルアップロード機能の脆弱性検証してみる](https://qiita.com/ichimura/items/0c4e5d2dd6fe8b55018e)」です。