$30 off During Our Annual Pro Sale. View Details »

バグハンティングのすゝめ / P3NFEST

Masato Kinugawa
February 17, 2024
2k

バグハンティングのすゝめ / P3NFEST

学生のためのサイバーセキュリティカンファレンス P3NFESTの発表資料です。

Masato Kinugawa

February 17, 2024
Tweet

More Decks by Masato Kinugawa

Transcript

  1. ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ どん底の学生時代(~2010) • 大学受験に繰り返し失敗 • 取り柄だと思っていた勉強に対する挫折 • 負の連鎖から鬱のような状態になる •

    いったん情報系の専門学校へ行くことに • ひとまず好きなことをやった方が良いという鬱経験者のアドバイスから • 最初は楽しかったが、途中から行けなくなる • 資格取得と就職に特化されたカリキュラム • 目的のズレで滅入る、鬱は続く • 結局、進級の出席日数が足りなかったため退学を選択→無職へ
  2. ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ XSSとの出会い • 脆弱性が身近にあるものだと知りさらに興味がわく • 中でもXSSに興味を持つ • 単純にみえて実は奥が深い •

    はせがわようすけさんの記事からその面白さを知る 教科書に載らないWebアプリケーションセキュリティ https://atmarkit.itmedia.co.jp/fcoding/index/webapp.html 本当は怖い文字コードの話 https://gihyo.jp/list/group/本当は怖い文字コードの話 JavaScript変態文法最速マスター https://hasegawa.hatenablog.com/entry/20100203/p1
  3. ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ <script> kw = "";[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[ ]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[ +!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+ !+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+ !+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]

    ]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+ !+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[ ]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![] +[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]] +(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+! +[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+ []]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+ []]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]] +(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[]) [+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![ ]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[ ]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![] +[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[] )[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[!+[]+!+[]])+(![]+[])[+!+[]]+(![]+[ ])[!+[]+!+[]])()((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+ []]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[+!+[]+[!+[]+!+[]+!+[]]]+[+!+[ ]]+([+[]]+![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[!+[]+!+[]+[+[]]]);""; </script> JSFuck: https://jsfuck.com/
  4. ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ <script> kw = "";[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+(![]+[])[!+[]+!+[ ]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[ +!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+ !+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+ !+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]

    ]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+ !+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[ ]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![] +[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]] +(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+! +[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+ []]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+ []]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]] +(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[]) [+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![ ]+[])[+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[ ]]+[])[+[]]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[!+[]+!+[]+!+[]]+(!![] +[])[+[]]+(!![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[+!+[]+[+[]]]+(!![]+[] )[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[!+[]+!+[]])+(![]+[])[+!+[]]+(![]+[ ])[!+[]+!+[]])()((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+ []]+([][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]+[])[+!+[]+[!+[]+!+[]+!+[]]]+[+!+[ ]]+([+[]]+![]+[][(![]+[])[+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]])[!+[]+!+[]+[+[]]]);""; </script> OK 1 JSFuck: https://jsfuck.com/
  5. ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ 実例: jQueryのXSS • HTMLを追加する .html( htmlString ) 機能などにあったバグ

    • 使う分にはただHTMLを追加するだけに見える • が、実は内部で文字列置換をしている • この処理のせいで安全なHTMLを渡していてもXSSが起きる場合があった CVE-2020-11022/CVE-2020-11023: jQuery 3.5.0で修正されたSecurity Fixの詳細 https://masatokinugawa.l0.cm/2020/05/jquery3.5.0-xss.html rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a- z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi [...] htmlPrefilter: function( html ) { return html.replace( rxhtmlTag, "<$1></$2>" ); }
  6. ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ ゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝゝ 何からしたらいいかわからない? • Webセキュリティを体系的に学ぶなら徳丸本 • XSSから始めるのもオススメ • 入り口はやさしくとっつきやすい •

    が、深く知ろうとするとブラウザセキュリティの神髄がつまっている • パズル的な面白さから入るなら「XSSチャレンジ」 • CTF (Capture The Flag)もオススメ • セキュリティ関連の知識を駆使して隠された文字列(flag)を探すゲーム • 仲間を作りたいとか、わいわい解いたりが好きな人は特に良いかも • いろんな分野の勉強ができるメリットも