はじめに
Webで入力フォームやAPIなど実装する際に気をつけたいことって色々ありますよね。
フレームワーク使うから安心と思っていませんか?そんなことはありません。
XSS(クロスサイトスクリプティング)やCSRF(クロスサイトリクエストフォージェリ)にはフレームワークが対応してくれていることが多いですが、作り方により入力フォームはSQLインジェクション、OSコマンドインジェクションの入り口になってしまいます。
攻撃手法を理解した上で、開発ができるかいなかがエンジニアのスキルのみせどころです。
「彼を知り己を知れば百戦殆うからず」ということで、今回はWindows環境で脆弱性検証の環境作成をしてみました。
イメージは以下です。
環境
- Windows 7
- Chrome 71.0.3578.98
- Proxy SwitchyOmega Version 2.5.20
- BurpSuite
手順
SwichyOmegaインストール
ChromeのアドオンSwichyOmegaをインストールして有効化します
このアドオンでは検証したいサイトごとにproxyの設定をすることができます。
今回は後ほどインストールするBurpSuiteでローカルプロキシをしたいのでServerをlocalhostにします。
ブラウザがIEの場合はIE自体で設定できます。
BurpSuiteインストール
次にローカルプロキシツールとしてBurpSuiteをインストールします。
BurpSuiteはクライアント上で動作しブラウザからのリクエストを一旦キャプチャした上で
リクエストの内容を変更してPOSTすることができるようになります。
こちらのサイトよりダウンロードします
無料のcommunityよりDownloadし、インストールします。
Proxyを選択してIntercept offにします。
このInterceptでproxyを有効、無効にできます。
optionsをクリックしProxy ListenersのRunnnigにチェックが入っていることを確認します。
デフォルトで以下のようになっていますが、ポート8080が他で使われている場合はRunnnigにチェックがつきません。ポート番号をSwichyOmegaと同様に変更してください。
SwichyOmegaのProxyを有効化
chromeのアドオンに下のようなブルーのリングのようなアイコンが、SwichyOmegaです。
ここから有効にします。
これで検証したいサイトがhttpの場合は設定は完了です。
今時httpのサイトって少ないので、httpsに対応させます。
証明書がない状態でhttpsにアクセスするとproxyできません。
証明書を設定
http://127.0.0.1:8080
にアクセスし証明書をダウンロードします。
CA Certificateよりcacert.derという証明書ファイルローカルにダウンロードします。
chromeの設定より証明書を常に信頼済みに設定します。
こちらのサイトが参考になります
証明書の登録が完了したら、
再度SwitchyOmegaを有効にし、BurpSuiteのIntercept onに
https://www.google.co.jp/
Rawデータが取得できていれば設定が完了となります。
ここからがホワイトハッキングのスタートです。
二歩目は「ファイルアップロード機能の脆弱性検証してみる」です。