質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

解決済

1回答

1928閲覧

偽の入力フォームの書き出し方

退会済みユーザー

退会済みユーザー

総合スコア0

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

0クリップ

投稿2016/09/25 11:26

http://bakera.jp/glossary/クロスサイトスクリプティング脆弱性

こちらのサイトを参考にしました。
このサイトはXSSの説明をしてくれているのですが、その中でこのような文章があります。

「たとえば、銀行のサイトに偽の入力フォームを書き出し、「口座番号と暗証番号を入力してログインしてください」というキャプションを添えたとしたらどうでしょう。注意深くないユーザは、素直に暗証番号を入れてしまうかも知れません。もう少し注意深いユーザは、ブラウザのステータスバーを見て鍵マークが表示されているのを確認してから、おもむろに暗証番号を入れてしまうかも知れません。いずれの場合も、値はそのまま攻撃者に送られます。このケースでは、攻撃者はスクリプトを全く使用していません。そのため "Scripting" には該当しないという見方もあるでしょうが、普通はこういったものも全て含めて「クロスサイトスクリプティング」と称します。」

銀行のサイトに偽の入力フォームを書き出す、というのはどのような手法を使って実現されるのでしょうか?
スクリプトを使用しないということは何らかの手段でhtmlを書き換えるのだろうとは思うのですが、一体どのような手段でそれを実現するのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

あなたが参考にしたページに書いてあります。

Web アプリケーションで、入力されたデータの内容をチェックせずに HTML 内に出力していると、HTML 内にスクリプトなどの任意のコードを埋め込むことができてしまいます。このような状態を「クロスサイトスクリプティング脆弱性がある」と言います。
わかりやすい例としては、任意のタグがそのまま書き込めてしまう掲示板が挙げられます。悪意あるユーザが <script> などのタグを含む内容を投稿すると、投稿内容を閲覧したときにスクリプトが実行されてしまいます。

[追記]
以下のサイトが参考になるかもしれません。

クロスサイトスクリプティング対策の基本(前編)
クロスサイトスクリプティング対策の基本(中編)
アプリケーションの攻撃パターン - 5) クロスサイト・スクリプティング

投稿2016/09/25 11:46

編集2016/09/26 09:30
carimatics

総合スコア740

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/25 12:06

どこかの知恵遅れ袋がその脆弱性がたんまりあったなぁ(遠い目
退会済みユーザー

退会済みユーザー

2016/09/25 14:01

銀行のサイトに偽のフォームを作る時は、スクリプトを使ってないのではないでしょうか? その回答のところにはスクリプトを埋め込むと書いていますが。
退会済みユーザー

退会済みユーザー

2016/09/25 22:37

まあ銀行は別ドメインのコピーサイトだよなぁ
carimatics

2016/09/26 03:17

XSS脆弱性があるサイトには任意のコードが埋め込めます。 formタグを埋め込んで攻撃者のサーバに情報を送るような偽のフォームを作ることも可能です。 「このケースでは、攻撃者はスクリプトを全く使用していません。そのため "Scripting" には該当しないという見方もあるでしょうが、普通はこういったものも全て含めて「クロスサイトスクリプティング」と称します。」とあなたが引用している通りです。 回答にある掲示板の話は、飽くまで例として挙げてあるものです。 理解しやすいかと思って引用しましたが、混乱させてしまったかもしれませんね。 すみません。
carimatics

2016/09/26 03:19

別のドメインで偽のサーバを立てるのはXSSではなくフィッシングという手法かと。 フィッシングはXSS脆弱性がなくとも実行可能です。
退会済みユーザー

退会済みユーザー

2016/09/26 09:14

すみません、よく理解できていないのですが、掲示板では任意のコードを埋め込むことができるが、銀行のサイトでは任意のコードは埋め込めない、ということでしょうか? スクリプト=任意のコードということなのでしょうか?
carimatics

2016/09/26 09:21

掲示板であるか銀行であるかなどはまったく関係ありません。 サービスに関わらずXSS脆弱性があれば任意のコードを埋め込めます。 「任意のコード」は当然攻撃者が埋め込むものです。 スクリプトであるかもしれませんし、そうでないかもしれません。
carimatics

2016/09/26 09:31

回答に参考リンクを追記しました。 疑問が解消できるかもしれないので参照してみてください。
退会済みユーザー

退会済みユーザー

2016/09/26 14:27

スクリプトというのはJavaScriptのコードという意味でよろしいのでしょうか? そして、上の例の偽のフォームの書き出しはformタグの書き出し、すなわちhtmlの追加であって、JavaScriptのコードではないから、スクリプトを使用していないというわけになるのでしょうか? しかし、そのようなことは可能なのでしょうか?
carimatics

2016/09/26 14:59

> スクリプトというのはJavaScriptのコードという意味でよろしいのでしょうか? ブラウザで利用できるスクリプトといえば一般にJSだとは思いますが、別にそれに限ったことではないと思います。 ブラウザで実行可能であればJSでなくとも良いでしょう。 > そして、上の例の偽のフォームの書き出しはformタグの書き出し、すなわちhtmlの追加であって、JavaScriptのコードではないから、スクリプトを使用していないというわけになるのでしょうか? あなたが質問で引用した文章に関してはその解釈で正しいと思います。 > しかし、そのようなことは可能なのでしょうか? 私が追記で挙げたサイトは読んでいただけたのでしょうか…? スクリプトの埋め込みというのはhtmlにscriptタグを埋め込むということです。 その結果スクリプトが実行されます。 scriptタグを埋め込むことが出来れば原理的にformタグを埋め込むことも可能です。 何度か説明したと思いますが、「任意のコード」が埋め込めるのです。 「任意のコード」です。 scriptタグでもformタグでもpタグでもプレーンテキストでも、「任意のコード」が埋め込み可能です。 追記で提示したURLにXSSを行うサンプルがあると思いますので、疑わしいならご自身で検証してみるとよろしいかと思います。
退会済みユーザー

退会済みユーザー

2016/09/27 07:09

すみません、追記であげて頂いたサイトを見ておりませんでした。 XSSについて述べているサイトはだいたい同じような内容ばかりだったので、すみません。。 よく理解できました。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問