クロスサイト・スクリプティング (XSS) 格納型

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構
P.22「1.5 クロスサイト・スクリプティング」参照

 検索のキーワードの表示画面や個人情報登録時の確認画面、掲示板、ウェブのログ統計画面等、利用者からの入力内容や HTTP ヘッダの情報を処理し、ウェブページとして出力するものがあります。ここで、ウェブページへの出力処理に問題がある場合、そのウェブページにスクリプト等を埋め込まれてしまいます。

 

クロスサイトスクリプティング - Wikipedia

 格納型(持続型)(Stored)XSSでは、攻撃者は不正なデータDを標的サイトのデータベース、メッセージフォーラム、訪問者のログといったデータストアに保存する[1]。たとえば電子掲示板に格納型XSS脆弱性がある場合、攻撃者は不正なデータDを含んだ書き込みを掲示板に対して行う。すると掲示板システムはDを自身のデータストアに保存し、正規の利用者が掲示板を訪れるたびにDを含んだ書き込みを表示するため、この書き込みを表示した利用者全員がXSSの被害者になりうる。格納型XSSは正規サイトのデータストアそのものに不正なデータを仕込むので、反射型XSSと違い被害者に不正なURLをクリックさせる必要がない事が攻撃者にとっての利点の一つである。

DVWA にログインする

  • Security level = low を確認する
  • 左欄から「XSS stored」を選び Vulnerability: Stored Cross Site Scripting のページに移る

スクリプトを含んだ文字列を掲示板に投稿する。

<script>alert('XSS')</script>

f:id:hirose-test:20191023224026j:plain

f:id:hirose-test:20191023224037j:plain

クロスサイト・スクリプティングが実行される。
(『Message: Click Here』の部分はCSRFの方で試したもの)

Stored型 XSSとして、今後は掲示板を開くたびにスクリプトが実行される。被害者にリンクをクリックさせる必要はない。

f:id:hirose-test:20191023224232j:plain

左メニューの [Setup] から [Create / Reset Database] をクリックすることでDVWAをリセットできる。

f:id:hirose-test:20191023224831j:plain

internet.watch.impress.co.jp

/* -----codeの行番号----- */