こんにちは、ゆるいぞITチャンネルです。

それでは今回は脆弱性をついた攻撃方法の一つである「XSS(クロスサイトスクリプティング)」について解説していきたいと思います。


※Youtubeでは動画版をご視聴いただけます。

この記事はこんな人にオススメ
  • ハッキングスキルについて知りたい
  • セキュリティの知識を学習したい
  • ITインフラの知識を学習したい

※実務や演習等を除き、インターネット上のサーバへクラッキングすることは違法行為となりますのでご注意ください。

0.使用する環境

ソフトウェア

  • 仮想環境 : Virtual Box
  • 攻撃用サーバ : Kali Linux
  • ターゲットホスト : Metasploitable2(DVWA)

演習環境

1.XSS(クロスサイトスクリプティング)とは?

ゆるいぞIT

まずは今回のお題である「XSS(クロスサイトスクリプティング)」の概要について説明します。

”XSS”とは脆弱性のあるWebサイトに対して悪意のあるスクリプトを実行することで、攻撃を受けたWebサイトであったり、またはそのページを閲覧しにきたユーザ、その両者に対して被害を与える攻撃手法の一つになります。

例えば、Amazonなどのショッピングサイトを開いてみると、ページ上部に商品を検索するための検索窓が見えると思います。

ここにスクリプト「<script>alert(“xss”)</script>」を入力(実行)することで、本来の用途とは異なる処理が実行されてしまうことがあります。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

Amazonのサイトは脆弱性がないのでスクリプトを実行しても何も起きませんが、XSSに関連する脆弱性がある場合、「意図しないポップアップの表示」、「Webサイト(ページ)の書き換え」、「ユーザのCookieの情報の盗聴」など、色々と良くないことができてしまいます。

スクリプトとは…
すぐに動かすことができるプログラムのこと。
例えば「print(‘チャンネル登録、高評価お願いしますm(_ _)m’)」と実行すると指定した文字列がすぐに帰ってきます。
実際には裏でコンピュータが出力する処理を実行していますが、実行した側から見るとすぐ動いてるように見えます。
ざっくり言うと”スクリプト”とは、こういったプログラムのことをいいます。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

2.XSS(クロスサイトスクリプティング)の実行

”XSS”の動作を確認するにあたって「DVWA」というツールを使用します。

DVWAとは…
SQLインジェクション・XSSなどの攻撃手法や脆弱性の仕組みを学習できるオープンソースのツール。

はじめにDVWAのセキュリティレベルを設定します。

high(高)」、「midium(中)」、「low(低)」とありますが、low(低)になるにつれてセキュリティが弱くなっていきます。

今回は「Low(低)」に設定して脆弱性がある状態にしておきます。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

左メニューの「XSS reflected」を選択して”XSS”の動作確認を実施します。

あなたの名前は何ですか?」ということで試しに何か適当に入力してみます。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

通常であればこのように入力した”文字列”が帰ってきます。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

それでは脆弱性をついた攻撃(XSS)を実行してみましょう。

ポップアップでメッセージを表示させたい場合は「alert + xxxxx」で実行します。

実行後、画面上に表示されるのはただポップアップですが、通常のセキュリティレベルであれば実行されない処理になります。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

セッションのCookie情報を表示させたい場合は「document.cookie」で実行します。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

単純に情報を表示するだけではあまり意味はないですが、攻撃者が用意したサイトにCookie情報を送信するといったことも可能で、スクリプトを上手く組み合わせることで効果的な攻撃方法になります。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

特定のURLを指定することで、ユーザを別なページに遷移させることも可能です。

XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

3.XSS(クロスサイトスクリプティング)でどういった被害にあうのか?

DVWAでの動作確認を踏まえた上で、具体的にどういった被害に合うのかというと…

※一例になります。

①攻撃者が掲示板やSNSなどを使い、人目に付く場所に悪意のあるスクリプトを含んだリンク(URL)を投稿する。
XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】
②そのリンク(URL)を見かけた一般のユーザが興味本位でクリックしてしまう。
XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】
③リンク(URL)に含まれていたスクリプトが実行されて、脆弱性があるWebサイトに転送される。
XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】
④転送された後に悪意のあるスクリプトが実行され「Webサイトの情報を改竄」、「アクセス者の情報の盗聴」といった処理が実行される。
XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】
⑤攻撃者にスクリプトが実行されたログが返ってくることで攻撃成功となる。
XSS(クロスサイトスクリプティング)って何?動作を試してみる【ハッキングスキル】

このように知らず知らずのうちにリンクをクリックしてしまったことで、攻撃に加担してしまっているという場合もあったりします。

スクリプト単体の事例でみてみると「特定のサイトに誘導するスクリプトを含んだリンクをバラまいて、ターゲットとするWebサイトに高負荷をかけてサイトを落として見れなくする」といった手法もあります。

こういう事例もあるので、可能な限りメールやSMSで送られてきたリンク、Web上に転がってる怪しいリンクなどは開かないでくださいねってことですね。

ということで、今回はここまでにしたいと思います。

それではまた次回お会いしましょう!