OWASP ZAP Maniacs #6

OWASP ZAP Maniacs #6

2016年8月24日(水)に脆弱性診断研究会が主催したハンズオンセミナー「脆弱性診断ええんやで(^^) OWASP ZAP Maniacs #6」にて使用した資料です。

Qiita:OWASP ZAP Tips & Tricks(作業ディレクトリ変更)
http://qiita.com/nilfigo/items/0c6d76bd94deb8dee05d

また、脆弱性診断研究会のハンズオンセミナー用のリポジトリをGitHubに作成しました。

https://github.com/SecurityTestingWorkshop/HandsOnSeminar

第39回で使用したOWASP ZAP用のスクリプトを上げてます。

8a9a0017e00b194eb586d86d933778ec?s=128

脆弱性診断研究会

August 24, 2016
Tweet

Transcript

  1. 第39回ハンズオンセミナー 脆弱性診断ええんやで(^^) OWASP ZAP Maniacs #6 2016年8月24日(水) 脆弱性診断研究会 (Security Testing

    Workshop)
  2. 脆弱性診断研究会とは Webアプリケーションやネットワーク機器などに対するセ キュリティ診断の最新手法や診断ツール使用法の勉強や研究 をするためのコミュニティ コワーキングスペース茅場町 Co-Edo(コエド)様にて第1回 セミナーを2014年8月に開催して以来、2016年7月現在で38回 のパブリックセミナーを実施 プライベートセミナーは年に数回実施 ©

    2016 脆弱性診断研究会 Security Testing Workshop 2
  3. 自己紹介 松本 隆則 (nilfigo:ニルフィーゴ) HASHコンサルティング株式会社  https://www.facebook.com/nilfigo  https://twitter.com/DYOH2017 ©

    2016 脆弱性診断研究会 Security Testing Workshop 3
  4. 自己紹介 脆弱性診断研究会 管理人・セミナー講師 • Facebook https://www.facebook.com/groups/zeijakusei.shindan.kenkyukai/ https://www.facebook.com/sec.testing.study.session/ • セミナー・イベント管理サイト https://security-testing.doorkeeper.jp/

    http://security-testing.connpass.com/ © 2016 脆弱性診断研究会 Security Testing Workshop 4
  5. 自己紹介 OWASP Japan プロモーションチーム  https://www.owasp.org/index.php/Japan  http://blog.owaspjapan.org/ © 2016

    脆弱性診断研究会 Security Testing Workshop 5
  6. 1. OWASPって何? The Open Web Application Security Project Let's know

    OWASP! https://speakerdeck.com/owaspjapan/lets-know-owasp-number-bpstudy20160226 工程別活用可能な資料・ツールの紹介 https://speakerdeck.com/owaspjapan/owasp-contents-reference OWASPの歩き方 https://speakerdeck.com/owaspjapan/what-is-owasp-20160319innovationegg7th © 2016 脆弱性診断研究会 Security Testing Workshop 6
  7. 2. Tips and Tricks OWASP ZAP作業 ディレクトリ変更 © 2016 脆弱性診断研究会

    Security Testing Workshop 7
  8. 2. Tips and Tricks OWASP ZAPのセミナーネタを試す と設定や環境が汚れてつらみある そんなアナタに © 2016

    脆弱性診断研究会 Security Testing Workshop 8
  9. 2. Tips and Tricks OWASP ZAP作業ディレクトリ変更 起動時に-dirオプション! © 2016 脆弱性診断研究会

    Security Testing Workshop 9
  10. 2. ZAP作業ディレクトリ変更 バッチファイル(Windows) シェルスクリプト (OS X, CentOS, Ubuntu, etc) Qiitaで公開中

    http://qiita.com/nilfigo/items/0c6d76bd94deb8dee05d set zap_user_dir="C:¥Users¥user¥path¥to¥dir" java -jar zap-2.5.0.jar -dir %zap_user_dir% %* ZAP_USER_DIR=/home/user/path/to/dir java -jar zap-2.5.0.jar -dir $ZAP_USER_DIR %* © 2016 脆弱性診断研究会 Security Testing Workshop 10
  11. ハンズオンの前に…… © 2016 脆弱性診断研究会 Security Testing Workshop 11

  12. OWASP ZAPのモード プロテクトモードの使用を推奨 診断対象URLを「コンテキスト」に 登録しなければ情報収集や動的スキャンを 実施できないため「事故」が起きにくい © 2016 脆弱性診断研究会 Security

    Testing Workshop 12
  13. OWASP ZAPのモード © 2016 脆弱性診断研究会 Security Testing Workshop 13

  14. 3. ログイン処理 攻略法 a. フォーム認証 i. IDとパスワードで認証 ii. 3項目以上で認証 b.

    Basic認証 © 2016 脆弱性診断研究会 Security Testing Workshop 14
  15. 3. ログイン処理 攻略法 a. フォーム認証 i. IDとパスワードで認証 ii. 3項目以上で認証 b.

    Basic認証 © 2016 脆弱性診断研究会 Security Testing Workshop 15
  16. 3.a.i. IDとパスワードで認証 1. 診断検証サイトのログイン画面をZAP経由で表示 © 2016 脆弱性診断研究会 Security Testing Workshop

    16
  17. 3.a.i. IDとパスワードで認証 2. ZAPのコンテキストに診断対象サイトを登録 © 2016 脆弱性診断研究会 Security Testing Workshop

    17
  18. 3.a.i. IDとパスワードで認証 3. いきなり「スパイダー」を実行 © 2016 脆弱性診断研究会 Security Testing Workshop

    18
  19. 3.a.i. IDとパスワードで認証 4. 全部で3個のURIを検出 © 2016 脆弱性診断研究会 Security Testing Workshop

    19
  20. 3.a.i. IDとパスワードで認証 5. コンテキストの「認証」にForm認証情報を手入力 © 2016 脆弱性診断研究会 Security Testing Workshop

    20
  21. 3.a.i. IDとパスワードで認証 6. コンテキストに「ユーザ」を追加 © 2016 脆弱性診断研究会 Security Testing Workshop

    21
  22. 3.a.i. IDとパスワードで認証 7. 追加したユーザを使用してスパイダーを実行 © 2016 脆弱性診断研究会 Security Testing Workshop

    22
  23. 3.a.i. IDとパスワードで認証 8. ログイン後に表示される画面のリンクを検出 © 2016 脆弱性診断研究会 Security Testing Workshop

    23
  24. 3.a.i. IDとパスワードで認証 9. スパイダーが検出したURIはZAPの履歴に存在しない © 2016 脆弱性診断研究会 Security Testing Workshop

    24
  25. 3. ログイン処理 攻略法 a. フォーム認証 i. IDとパスワードで認証 ii. 3項目以上で認証 b.

    Basic認証 © 2016 脆弱性診断研究会 Security Testing Workshop 25
  26. 3.a.ii. 3項目以上で認証 ZAP標準の機能では無理! なので スクリプトでなんとかしよう! © 2016 脆弱性診断研究会 Security Testing

    Workshop 26
  27. 3.a.ii. 3項目以上で認証 1. 診断検証サイトのログイン画面をZAP経由で表示 © 2016 脆弱性診断研究会 Security Testing Workshop

    27
  28. 3.a.ii. 3項目以上で認証 2. ZAPのコンテキストに診断対象サイトを登録 3. 3項目以上で認証するためのスクリプト作成 © 2016 脆弱性診断研究会 Security

    Testing Workshop 28
  29. 3.a.ii. 3項目以上で認証 4. テンプレートからスクリプトを作成して改造 © 2016 脆弱性診断研究会 Security Testing Workshop

    29 * スクリプトの一部抜粋 * // Prepare the login request details requestUri = new org.apache.commons.httpclient.URI(paramsValues.get("Target URL"), false); requestMethod = org.parosproxy.paros.network.HttpRequestHeader.POST; // Build the request body using the credentials values extraPostData = paramsValues.get("Extra POST data"); requestBody = paramsValues.get("Group field") + "=" + encodeURIComponent(credentials.getParam("Group")); requestBody+= "&" + paramsValues.get("Username field") + "=" + encodeURIComponent(credentials.getParam("Username")); requestBody+= "&" + paramsValues.get("Password field") + "=" + encodeURIComponent(credentials.getParam("Password")); if (extraPostData.trim().length() > 0) {
  30. 3.a.ii. 3項目以上で認証 5. スクリプトとコンテキストを紐付ける © 2016 脆弱性診断研究会 Security Testing Workshop

    30
  31. 3.a.ii. 3項目以上で認証 6. コンテキストの「認証」を設定 © 2016 脆弱性診断研究会 Security Testing Workshop

    31
  32. 3.a.ii. 3項目以上で認証 7. コンテキストに「ユーザ」を追加 © 2016 脆弱性診断研究会 Security Testing Workshop

    32
  33. 3. ログイン処理 攻略法 a. フォーム認証 i. IDとパスワードで認証 ii. 3項目以上で認証 b.

    Basic認証 © 2016 脆弱性診断研究会 Security Testing Workshop 33
  34. 3.b. Basic認証 既存のフォーム認証設定をキープして、新たにBasic認証設定 を追加しようとすると 「変更するなら保存してある設定を消しちゃうけど大丈夫?」 © 2016 脆弱性診断研究会 Security Testing

    Workshop 34
  35. 3.b. Basic認証 全然大丈夫じゃない!! ので スクリプトでなんとかしよう! © 2016 脆弱性診断研究会 Security Testing

    Workshop 35
  36. 3.b. Basic認証 1. Basic認証用アカウント ID: stw039basic パスワード: stw039basic © 2016

    脆弱性診断研究会 Security Testing Workshop 36
  37. 3.b. Basic認証 2. IDとパスワードをコロンで連結 stw039basic:stw039basic © 2016 脆弱性診断研究会 Security Testing

    Workshop 37
  38. 3.b. Basic認証 3. Base64でエンコード © 2016 脆弱性診断研究会 Security Testing Workshop

    38
  39. 3.b. Basic認証 4. Basic認証用ヘッダー作成 Authorization: Basic c3R3MDM5YmFzaWM6c3R3MDM5YmFzaWM= © 2016 脆弱性診断研究会

    Security Testing Workshop 39
  40. 3.b. Basic認証 5. Basic認証用ヘッダーを追加するス クリプトを作成 「OWASP ZAP で送信されるリクエストに自動で独 自ヘッダを追加する方法」 http://www.pupha.net/archives/2654/

    © 2016 脆弱性診断研究会 Security Testing Workshop 40
  41. 3.b. Basic認証 6. スクリプト適用後 © 2016 脆弱性診断研究会 Security Testing Workshop

    41
  42. 資料  OWASP ZAP ハンズオンセミナー 「第4回セキュリティ診断(自分でしたら)いかんのか?( OWASP ZAPなら)ええんやで(^ ^)」内容まとめ •

    http://securitymemo.blogspot.jp/2014/12/owasp-zap-4owasp-zap.html  FoxyProxy Standard • http://getfoxyproxy.org/downloads.html • http://qiita.com/nilfigo/items/c8b5e8321e63531640a9  OWASP ZAP翻訳プロジェクト • https://crowdin.com/project/owasp-zap/ja • http://qiita.com/nightyknite/items/402e639b9d64d8f8eca5  Proxy War • http://www.slideshare.net/zaki4649/proxy-war-42161988 © 2016 脆弱性診断研究会 Security Testing Workshop 42
  43. 今後に予定しているセミナーの例  OWASP ZAP Rookies  ローカルプロキシと手動診断  ウェブ健康診断のススメ 

    脆弱性診断ってどうすればいいの? © 2016 脆弱性診断研究会 Security Testing Workshop 43
  44. OWASP ZAP Rookies  OWASP ZAPとブラウザの設定  スキャンポリシー  静的スキャン

     動的スキャン(自動診断)  診断結果確認と保存 © 2016 脆弱性診断研究会 Security Testing Workshop 44
  45. ローカルプロキシと手動診断  OWASP ZAP  Burp Suite  Fiddler2 

    各ツールの特徴  多段プロキシ!のコツ © 2016 脆弱性診断研究会 Security Testing Workshop 45
  46. ウェブ健康診断のススメ  ウェブ健康診断って?  ツールでラクラク毎日健康診断♪ © 2016 脆弱性診断研究会 Security Testing

    Workshop 46
  47. 脆弱性診断ってどうすればいいの?  脆弱性診断に必要な心構え  診断対象数の見積もり方法について  セキュリティ会社によって対象画面数や金額 が違うのはナゼ?  20ページ程度だと思って見積もりを依頼した

    ら50ページって言われたんだけど © 2016 脆弱性診断研究会 Security Testing Workshop 47
  48. 興味があるのは?  OWASP ZAP Rookies  ローカルプロキシと手動診断  ウェブ健康診断のススメ 

    脆弱性診断ってどうすればいいの? アンケートにご協力いただきたく https://goo.gl/forms/2IGkqViXpQr3KoPw1 © 2016 脆弱性診断研究会 Security Testing Workshop 48