🐵

【セキュリティ】HTML インジェクションとは(備忘録)

2023/01/14に公開

1.インジェクションとは

インジェクション攻撃とは、データベースやプログラムの脆弱(ぜいじゃく)性を利用したサイバー攻撃や不正アクセスの総称です。
乗っ取り被害や顧客情報の流出などは、まさにインジェクション攻撃の典型的な例です。

引用:HTMLのインジェクション攻撃を防ぐ方法を現役デザイナーが解説【初心者向け】

2.実際にやってみたーその1

〇検証環境:bWAPP(VirtualBox上に環境構築) 
〇使用ブラウザ:FireFox

手順1.
「HTML Injection - Reflected (GET)」を選択します。

手順2.
・操作内容
 入力フォームにtestと入力し、「Go」ボタンを押下します。

・結果
 入力した文字列(test)が表示されました。
 
このように入力した文字列が表示されると、「htmlインジェクションができるのではないか」
と判断される可能性があります。

手順3.
・操作内容
 入力フォームに下記パラメーターを入力し、「Go」ボタンを押下します。

入力パラメーター
<h1>Hello</h1>
<h2>Test</h2>

パラメーターを入力した画面です。

・結果 
HTMLタグで囲んだ文字列が表示されました。
HTMLインジェクションは可能と判断できます。

3.実際にやってみたーその2

〇検証環境:bWAPP(VirtualBox上に環境構築) 
〇使用ブラウザ:FireFox(FoxyProxyをインストール)
〇使用ツール:BurpSuite

手順1.
「HTML Injection - Reflected (POST)」を選択します。

手順2.
BurpSuiteのProxy/Interceptを「OFF」にします。

手順3.
入力フォームに下記パラメーターを入力します。

入力パラメーター
<h1>Bye</h1>
<h2>Test</h2>

実際の画面です。

手順4.
BurpSuiteのProxy/Interceptを「ON」にします。

手順5.
・操作内容
 ブラウザに表示されている入力フォーム下の「Go」ボタンを押下します。
 
・結果
 BurpSuiteの画面です。

入力した内容も反映されています。

表示内容
firstname=%3Ch1%3EBye%3C%2Fh1%3E&lastname=%3Ch2%3ETest%3C%2Fh2%3E&form=submit

手順6.
・操作内容
 BurpSuiteの表示画面を書き換えます。

書き換え内容
firstname=<h1>Good</h1>&lastname=<h2>Study</h2>

書き換え後に、BurpSuiteの「Forward」を押下します。
「Forward」押下前のBurpSuiteです。

・結果
 書き換えた内容が反映されていました。
 

4.注意

この記事で紹介した内容は、独自に用意した検証用サイトに対して行いました。
企業・団体等のサイトに対し攻撃すると、違法行為として処罰される可能性があります。

Discussion