Nickセキュリティログ

ハニーポット、バグバウンティ、CTFなどなどセキュリティ関係のことを備忘録がてら書いていきます

【バグバウンティ】初心者からの抜け方【初級者になる】

f:id:NickShadows:20190630101430j:plain



以前、とりあえず始めるために記事を作りました。

www.nicksecuritylog.com



今回はそのあたりのサポートみたいな記事になります。
海外の記事でfor beginnerはたくさんありますが、「beginner」のレベルが高い。
HTTP、NW、プログラムの基礎を学ぶって、そりゃそうだが、誰がそのプランで行動できるんだ・・・




たぶん、私は初心者から抜けた「初級者」にいると思います。
初級者目線で書かれたfor beginner記事は見かけたことが無いので、作ってみます。
※筆者の経験を元にした記事です。この記事が誰にとっても正解であるとは限りません。








初心者・初級者の定義

★初心者★

自分が今やっていること、使っているものの理由が理解できていない

★初級者★

自分の行動などの理由はわかっているが、経験・知識量がたりない or 実績がない。




1,2ヶ月前、上記の「初級者」も「初心者」かと思ってましたが、割とギャップがあったのでこう分けます。
わける基準は、「なぜこれをやっているか、使っているか」を理解すること。



例えば、XSSのペイロードを投げるとします。
この時の行動理由は「XSSを見つける」です。



一連の流れとしては、プロキシツールを使ってリクエストを改ざんし、レスポンスがどうなるかを確認する、となります。



プロキシツールを使うのはリクエストを改ざんするため(他にも再現しやすい、たくさんペイロードが投げられるとかあります)


リクエストを改ざんするのは、不正な値を設定するため。


レスポンスを確認するのは、不正な値が反映されているか確認するため。


例はそんな難しくないですが、つまり「ネットで出たとおりにペイロードなげて、とりあえず結果を見てみよう」は初心者ということです。



厳しく書いてますが、初心者が悪いというわけではありません。
正確に自分がどの位置にいるかを把握してもらいたいだけです。



筆者のレベルについて

割と細かいところまで口出ししてしまうので、私のレベルを書いておきます。
これをもってこの記事が参考にできるかを判断して頂けたらと思います。



  • 賞金獲得・報告実績:なし

  • 脆弱性診断経験:あり(2ヶ月)

  • 知識:脆弱性に関して基礎は理解している。実際のバグバウンティでどんな脆弱性が多いか、どんなところを見るかは把握できていない。

  • 上記の判断基準に則って:何を持って脆弱性を探しているかは理解しているため、初級者であると認識。上記通り実績と知識が足りていない。




認識の訂正

ひとまず、認識の訂正をしておきます。
バグバウンティは誰かから課題を与えられる形式ではありません。




割とよくある、以下とは違います。

  1. 学生時代の誰かが作ってくれたテスト。想定された答えを答えられるように頑張る。
  2. 受験や入社。「受かる」というある程度決められた基準に達するように頑張る。
  3. 資格勉強。決められた内容を基準に達するように頑張る。
  4. 会社での基本業務。決められたことをある程度の基準で保てるように頑張る。





誰かが用意してくれた明確な回答はありません。
あるのは、脆弱性の基準と実施要件くらいです。


決められた広いルールの中で自分で課題を設定し、取り組む。

ぼーっとしてると、何も始まりませんよ。


手順

前置きが長くなりましたが、ここから手順です。手順というか私の履歴に近いです。

絶望する

とりあえずバグバウンティプログラムに取り組んで絶望しましょう。
ディスプレイの前でこう思いましょう。
「何したらいいんだ?」
f:id:NickShadows:20190630133723p:plain:w100 f:id:NickShadows:20190630133622p:plain:w100



これがないと、その後学んでいく知識が漠然としか入ってこないです。
この後、ディスプレイの前で絶望しないように知識を学んでいくのです。




基礎知識を学ぶ

HTTPなどWebの基礎について学びましょう。
サイトでも、本でも何でも良いと思います。

developer.mozilla.org








体系的に学ぶ 安全なWebアプリケーションの作り方 第2版[リフロー版] 脆弱性が生まれる原理と対策の実践






Webセキュリティ担当者のための脆弱性診断スタートガイド 第2版 上野宣が教える新しい情報漏えいを防ぐ技術





こちらは、後ほど使うBurpで困らないくらいあればいいですかね。
f:id:NickShadows:20190630140108p:plain




①リクエスト
②レスポンス
③メソッド
④リクエストヘッダ
⑤ボディ
⑥レスポンスヘッダ



脆弱性を学ぶ

こちらも基礎知識と同様ですね。

OWASPのサイトに細かく載っています。

www.owasp.org





検証環境もOWASPはいろいろあります。

www.owasp.org





www.owasp.org





何を学べばいいかって?
繰り返しますが、「ディスプレイの前で絶望しない」ことを学んでください。




プロキシツールを学ぶ

私はBurp Suiteを使っています。
このへんは自由だと思うのですが、Burpは使ってる人が多いので何かと便利です。
そのため、便利なサイトがいろいろあります。




persol-tech-s.co.jp





portswigger.net





こちらは正直使ってみないとなんとも言えないと思うので、事前にガッツリ調べるというよりかはやりたいことに合わせて調べていく、というのが良さげです。




手順以降について

手順を終えて、次に直面するのは「見つかんないじゃん!」だと思います。
というか、私がそれです。




なので、この後についてはお伝えすることはできないのですが、ここまで来てしまえば海外の方のtipsが参考になると思います。
リンクを貼っておきます。

gowsundar.gitbook.io





github.com





medium.com





終わりに

書き終わってみて、「特別なことなんてない」と思いました。
何かを本気でやるなら、壁にぶつかって、突き破っての繰り返しですよね。