初めに
この記事は以下が分からない人向けに説明するものです。
(1)XSSって概要は知ってるけど、『コマンドが実行されちゃう』程度しか分からない。
(2)何がクロスしているのか分からない。罠ページとウェブサイトがクロスしているの?
(3)脆弱性があるのは罠ページ?掲示板?ウェブサイト?ユーザのブラウザ?
(4)以下の図を見て頭痛がする人
![ハードに直接乗っている](https://qiita-user-contents.imgix.net/https%3A%2F%2Fwww.mobi-connect.net%2Fassets%2Flibrary%2F2023%2F03%2F1d7870a2a7b6405fae23410ed8ba6883.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=28a264afb6a77266c501484911dbcf82)
参考:
クロスサイトスクリプティング(XSS)とは?攻撃の仕組みや被害事例、対策方法を解説とは
(1)XSSの概要
結論からいうと、XSSとは『脆弱性のあるWebサーバに、ユーザ自身すら意図していない脅威性のあるコマンドを含めたリクエストが送信されることで、Webサーバはそのリクエスト通りの結果を返してしまいユーザが被害を被る』といった攻撃。
Webサーバから見れば「いや、お前が「僕の情報を漏えいさせてください」ってリクエストしたんやんけ…それに従ったまでよ」という感想ですが、ユーザは「いや従うなや!あのリクエストは騙された送ったんや!明らかにおかしいリクエストなんやから止めろや!」と口論に。
(2)何がクロスしているのか
脆弱性のあるサイトを介して攻撃がされるため、クロスサイトと呼ばれています。
つまり、冒頭では非常に複雑な手法で攻撃されているように見えますが、
極論これが全容です。
(XSSには3種類あり、これは反射型の説明です。他は暇な時追記するかも)
当然、被害者は自分の意志で自身に攻撃するドMではありません。
ではなぜこんなことになってしまうのか。
それは、この自傷行為にしかならないヤバいコードが含まれたURLをバラまいている攻撃者に騙されたからです。多いのは掲示板などからクリックしてしまうケース。
これをクリックしてしまったせいで、最初のイラストのようにユーザから不審なリクエストがクソブログ.comに投げられてしまったわけです。
(3)脆弱性があるのは?
XSSの脆弱性があるのは、上記例でいうと『クソブログ.com』です。
クソブログ.comが「いや、このリクエストはおかしい。騙されてるな」と見破り「そのリクエストには答えられんよ」とすればいいのです。(それか文字列だけで返すか)
しかし脅威性のあるURLを乗っけた掲示板には非がない訳ではありません。
なぜならGmailで確認したところ、ちゃんと攻撃性のあるURLはリンクとして反応しないような仕組みになっていたからです。掲示板はこの仕組みを適用するべきでした。
ただし、この掲示板は「言われたとおりURLを乗せただけで、攻撃したりはしてない。コメントを載せたのが攻撃者だとは知らなかった」と言い訳。
XSSとは「サーバで変なコード(スクリプト)が処理されずにユーザに返される」攻撃を指すので、それらを行っていない以上、掲示板にXSSの脆弱性があるとはいえないかもしれません。
以上
質問ある方はコメントしてね。