
Contact List Plugin における認証済み格納型クロスサイトスクリプティング(XSS)
免責事項: このリポジトリは教育目的および倫理的開示専用で作成されています。本脆弱性はベンダーに責任を持って報告され、修正済みです。許可なくシステムを悪用する目的でこの情報を使用しないでください。
WordPress用プラグイン Contact List - Online Staff Directory & Address Book(バージョン <= 3.0.17)において、格納型クロスサイトスクリプティング(XSS) の脆弱性が発見されました。この脆弱性により、Author(投稿者)以上の権限を持つ認証済みユーザーが、隠しカスタムフィールドを介して連絡先カードに悪意のあるJavaScriptを挿入できる可能性があります。
連絡先カードが公開ディレクトリ上でレンダリングされると、挿入されたペイロードは訪問者のブラウザ上で実行されます。管理者がそのページを閲覧した場合、この欠陥は完全なアカウント乗っ取り(ATO)およびサイト乗っ取りにエスカレーションされる可能性があります。
<= 3.0.17この脆弱性は、地図のiframeを埋め込むことを目的とした_cl_map_iframeカスタムフィールドの不適切なサニタイズと安全でない出力処理に起因します。
1. 安全でないデータ保存:
includes/class-contact-list-custom-fields.php(saveCustomFields()内)において、プラグインは_cl_map_iframe入力を正規表現を使用して```
6. リクエストを転送します。サーバーは悪意のあるiframeを保存します。
7. トリガー: [contact_list]が埋め込まれている公開ディレクトリページにアクセスします。アラートボックスが即座に表示され、コード実行が確認されます。
POST /wp-admin/post.php HTTP/1.1
Host: TARGET
Content-Type: application/x-www-form-urlencoded
Cookie: [Author_Session_Cookies]
post_title=Hacked+Contact&post_type=contact&action=editpost&_cl_map_iframe=
この脆弱性を修正するには、プラグイン開発者は以下を行う必要があります:
_cl_map_iframeを保存する際に、許可されたHTMLタグと属性の厳格な配列を指定してwp_kses()を使用します。onload、onerror、javascript: URIなどの属性を許可しないでください。