パスワードを忘れた? アカウント作成
18945 story
インターネット

秀逸なXSSの練習サイト 21

ストーリー by nabeshin
矛を知って盾を磨く 部門より

あるAnonymous Coward 曰く、

はてなブックマーク経由で知ったのですが、XSS Challenges というXSSの練習サイトが公開されています。全18問、単純なものから始まり、だんだんと難しくなっていくようです。一部の問題ではIEのみ対応のようですが、メールアドレスを登録するとどこまでクリアしたかのランキングも表示されたりと、おもしろい仕上がりになっています。

普段はなかなか実際にXSSを体感できる機会は少ないと思います。ひとつ腕試しにトライしてみてはいかがでしょうか。ちなみにタレコミ子は Stage #5 で音を上げてしまいました。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • あれっ (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2008年02月01日 13時58分 (#1289868)
    これって、

    javascript:alert(document.domain)
    をアドレスバーに入力するタイピング練習じゃないのね…orz
  • コメントが少ないのは (スコア:2, おもしろおかしい)

    by petit.torrija (31677) on 2008年02月01日 13時51分 (#1289860)
    Stage #3で音を上げた俺と違って、他の人は今頃どんどん先に解き進めてる最中だからなんだろうなきっと!

    orz
    • by Anonymous Coward on 2008年02月01日 16時05分 (#1289938)
      現在、Stage:#9です。UTF-7 XSSが必要となるここから先は無理っぽい気がしてきましたので、うち止めして報告します。
      とりあえず、#3を越える方法ですが、これ以降はフィールドの値を変える必要があるため、Firebug [mozilla.org]が必須になります (Firefoxユーザーの場合)。Firebugで開いた上で、HTML→Editで適当にソースを変更してhiddenフィールドなどを改造していきましょう。
      もちろん、コンソールでalert(document.domain)を打つなどチートは幾らでも出来ますけど、そういうのは無しの方向で。

      昔、hiddenパラメーターの中身をいじると管理者権限が取れるヤバいサーブレットを見せられたのを思い出した。当時から既にセキュリティホールが見つけられたと騒いでいたけれどどうなったんだろうか...
      親コメント
      • あれ?IDで書いたはずなのにACになってるよ。 ちなみに、#9は『+ADw-』と『+AD4-』がそれぞれ『<』や『>』と解釈されるのを悪用するのだと思う。 この前の奴はonmouseover=を無駄につけてみたり、『"』を余計につけてみたり、HTMLレベルでつけられた制限を破壊したり、hiddenを書き換えたりしてがんばると解けたような気がする。これらの合わせ技というのもあるが。 健闘を祈る。
        親コメント
        • by Anonymous Coward
          #11で飽きたけど、なんかこれ最後までやっても為にならん気がする。

          だいたい、scriptをxscriptに変えるより、htmlspecialchars通した方が楽で有効でないかい?
          • by Anonymous Coward
            ん~。
            >scriptをxscriptに変えるより、
            そういうのをしているアプリがまだまだ多いので警鐘かもねぇ?

            >htmlspecialchars通した方が
            「それでもだめな場合」があるから最後までやってもいいんじゃないかと思う。「それでもだめな場合」がこの練習問題に登場しているかどうかわからないけど。ん?エンコードごまかし系があるなぁ確か。bookmarklet作っておいてざっと問題ページだけ見てきただけでいっているんですまん。
          • by Anonymous Coward
            つーか,問題の半分くらいはhtmlentitiesをすり抜ける文字列だけでXSSが成立するわけだし,htmlentitiesさえ通しておけばいいってもんじゃないよ,って例になってるわけだが.
      • by Anonymous Coward
      • by Anonymous Coward
        Firebugは必要ないのでは?フィールドの値を変えることぐらいXSS野郎には朝飯前だったりする。
        • by Anonymous Coward
          IEでフィールドの値返るのってどうやってやるの?
          GET受け付けてくれないので
          何らかのツール使わないとできないよね?
          • by Anonymous Coward on 2008年02月01日 23時37分 (#1290153)
            javascript:document.body.innerHTML=document.body.innerHTML.replace( 以下略
            を利用するとか
            親コメント
            • by Anonymous Coward
              HTML改ざんで出来ますがもっとお手軽を選ぶなら
              javascript:void(document.forms[0].elements[2].options[0].text='[script]alert(document.domain);[/script]');
              みたいに送信パラメタ周りの強制上書きでしょうね。
              XSSじゃなくて完全に悪意ある攻撃状態ですが。

              # 悪いサイトのお手本を忠実に再現してて笑いました。
          • by Anonymous Coward
            普通にhtml保存して投げればできるし
            • by Anonymous Coward
              >普通にhtml保存して投げればできるし

              俺もそうしたんだけど、セッションID取るのが面倒だった。
              オールドタイプなのかな・・・・

              # 昔、XSS じゃないけどHTML隠しページを探して進んでくページ面白かったなぁ
          • by Anonymous Coward
            アドレスバーにjavascript:~~~と打ち込むだけでIE/Fx関係なく簡単に変えれますが。

            # Webアプリ作る人はリファラチェックしてても、ツールあればフォームデータは簡単に改ざん出来るし、
            # それどころかツールなくても簡単にフォームデータは書き換えられる位は知ってて欲しいかな。
      • by Anonymous Coward

        >とりあえず、#3を越える方法ですが、

        下記で、オフィシャルな(?)回答が公開されたみたいです。DOMを使うらしい。

        ◆XSS Challenges - Stage #3 の答え
        http://yamagata.int21h.jp/d/?date=20080204#p01 [int21h.jp]

  • なかなかコメントがつかないのは、きっと腕試しの真っ最中だからでしょう。

    お仕事の人も、そうではない人もがんばってください。
typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...