# CVE: CVE-2020-26806
# Exploit Title: ObjectPlanet Opinio version 7.13 allows
unrestricted file upload
# Vendor Homepage: https://www.objectplanet.com/opinio/
# Software Link: https://www.objectplanet.com/opinio/
# Exploit Authors: Timothy Tan , Daniel Tan, Yu EnHui, Khor Yong
Heng
# CVE: CVE-2020-26806
# Timeline
- September 2020: Initial discovery
- October 2020: Reported to ObjectPlanet
- November 2020: Fix/patch provided by ObjectPlanet
- July 2021: CVE-2020-26806
# 1. Introduction
Opinio is a survey management solution by ObjectPlanet that allows
surveys to be designed, published and managed.
# 2. Vulnerability Details
ObjectPlanet Opinio before version 7.13 is vulnerable to
unrestricted file uploads
# 3. Proof of Concept
### Unrestricted File Upload leading to RCE ###
Step 1:
URL: /opinio/admin/file.do
Opinio allows an administrative user to edit local CSS files. This file editing function however does not validate if the HTTP POST parameters are tampered with.
Post parameters to tamper with:
- filePath
- fileContent
The base directory can be guessed via the information under Setup >> Edit System Settings , this page on Opinio shows the local directory of where Opinio was installed to.
The file path can be tampered with for e.g. :
/upload/css/common/../../../admin/shell.jsp
The fileContent value was tampered with a JSP webshell for this PoC
and a webshell was acheieved
For our PoC, we could view the web.xml file using an XXE
vulnerability CVE-2020-26564 and identify which JSP files were
allowed be loaded and replaced the contents of that JSP file with
the webshell code
This vulnerability was confirmed by ObjectPlanet Opinio in their patch notes which can be found at : https://www.objectplanet.com/opinio/changelog.html
-------------------------------------------------------
# 4. Remediation
Apply the latest fix/patch from objectplanet.
# 5. Credits
Timothy Tan (https://sg.linkedin.com/in/timtjh)
Khor Yong Heng
(https://www.linkedin.com/in/khor-yong-heng-66108a120/)
Yu EnHui (https://www.linkedin.com/in/enhui-yu-88691b15b/)
Daniel Tan (https://www.linkedin.com/in/dantanjk/)

