CVE-2018-19091
tianti は Java で書かれた無料の軽量 CMS システムで、現在バックエンド管理からフロントエンド表示までの総合的なソリューションを提供しています。このうち、tianti 2.3 には、tianti-module-admin / user /list userName パラメーターを通じてユーザー管理モジュールに反映された XSS 脆弱性があります。 |
|
CVE-2018-14929
Matera Banco 1.0.0 は、/contingency/web/index.jsp (別名ホームページ) に示されているように、複数の反射型 XSS に対して脆弱です。 ) URLパラメータ。 |
|
CVE-2018-12996
ZohoManageEngine Applications Manager は、J2EE の基礎となる構造と J2EE アプリケーションを監視および管理するためのソリューションを提供します。 Zoho ManageEngine Applications Manager 13 (Build13800) に反映されたクロスサイト スクリプティング (XSS) の脆弱性により、リモート攻撃者が「method」パラメータを介して任意の Web スクリプトまたは HTML を GraphicalView.do に挿入することができます。 |
|
CVE-2018-12090
LAMS は、オーストラリアのマッコーリー大学、LAMS International Co., Ltd.、およびLAMS財団。 3.1 より前の LAMS には認証されていないリフレクト クロスサイト スクリプティング (XSS) が存在し、forgetPasswordChange.jsp でリモート攻撃者が侵入することを許可しますか?キー = パスワードの変更中に、不特定の GET パラメータを操作することにより、任意の JavaScript が導入されます。 |
|
3. サンプル コード
この例は、Samate Juliet Test Suite for Java v1.3 (https://samate.nist.gov/SARD/testsuite.php) からのものです。ソース ファイル名: CWE80_XSS__CWE182_Servlet_URLConnection_03.java。
3.1 欠陥コード
上記のサンプルコード操作は、ユーザーの年齢を取得し、接続オブジェクトを作成することです。 40 行目で入力ストリームを作成し、44 行目で urlConnection
オブジェクト応答の内容を取得します。52 行目でバッファ ストリームからデータ行を読み取り、100 行目ですべての を削除します。取得したデータを <script></script>
タグに追加し、処理したデータをページに出力します。<script></script>
タグがフィルタリングされていても、他の html
タグは引き続き表示されます。悪意のある url
が使用されますが、Web サイトが保護されていない場合、ページは document.cookie
のコンテンツを読み取り、それをページに入力します。これにより、反映された XSS が作成されます。
360 コード ガードを使用して上記のサンプル コードを検出すると、「反射型 XSS」の欠陥が検出でき、表示レベルが高くなります。データ汚染の原因とデータ フローの方向は追跡パスから分析でき、図 1 に示すようにコードの 100 行目で欠陥が報告されます。
図 1: 反射型 XSS 検出example
3.2 修復コード
#上記の修復コードでは、ページによって出力されるコンテンツはユーザーの年齢であるため、 96 行目の応答内容は数値に変換されるため、他の HTML 文字は除外されます。文字が存在する場合でも、コードは例外を報告し、反映 XSS は発生しません。
360 コード ガードを使用して修復されたコードを検出すると、「反映された XSS」欠陥がないことがわかります。図 2 に示すように:
図 2: 修復後の検出結果
4. 反射 XSS を回避する方法
反射を避けるため、;、'、" など) および
<script><p>、<code class="prettyprint code-in-text prettyprinted">javascript などをフィルタリングします。 <code class="prettyprint code-in-text prettyprinted">( 2) HTML コンテキスト (HTML タグ、HTML 属性、JavaScript スクリプト、CSS、URL) 内でデータが配置されるさまざまな場所に応じて、すべての信頼できないデータに対して適切な出力エンコードを実行します。<p>(3) ) 攻撃者による悪用を防ぐために HttpOnly<p> 属性を設定します##XSS<code class="prettyprint code-in-text prettyprinted"> 脆弱性は Cookie<code class="prettyprint code-in-text prettyprinted"> ハイジャック攻撃を実行します。JavaEE では、HttpOnly## を追加するコード# から <code class="prettyprint code-in-text prettyprinted">Cookie までは次のとおりです: <code class="prettyprint code-in-text prettyprinted"><code class="prettyprint code-in-text prettyprinted"></script>