Type packetstorm
Reporter onkel_fisch
Modified 2005-09-13T00:00:00


                                            `[NewAngels Advisory #7]PHP Nuke <= 7.8 Multiple SQL Injections  
Software: PHP Nuke 7.8  
Type: SQL Injections  
Risk: High  
Date: Sep. 10 2005  
Vendor: PHP-Nuke (  
Robin 'onkel_fisch' Verton from  
PHP-Nuke is a news automated system specially designed to be used in Intranets and Internet.  
The Administrator has total control of his web site, registered users, and he will have in the hand  
a powerful assembly of tools to maintain an active and 100% interactive web site using databases.  
PHP Nuke 7.8 is prone to multiple SQL injection vulnerabilities.  
These issues are due to a failure in the application to properly sanitize user-supplied input before using it in SQL queries.  
In the modules.php  
$result = $db->sql_query("SELECT active, view FROM ".$prefix."_modules WHERE title='$name'");  
The $name variable is not checked so you could inject malicious SQL Code. In an file which is included whe have the following code:  
$queryString = strtolower($_SERVER['QUERY_STRING']);  
if (stripos_clone($queryString,'%20union%20') OR stripos_clone($queryString,'/*') OR stripos_clone($queryString,'*/union/*') OR stripos_clone($queryString,'c2nyaxb0')) {  
header("Location: index.php");  
if (!ini_get("register_globals")) {  
So you can use UNION in a GET var. But because they use register_globals or impor_request_variables you can send  
the malicous SQL-Code via POST so it is not checked if you insert an "union". POST: name=' OR 1=1/*  
will produce an error, neither POST: name=' OR 1=2/*  
will only tell you taht the requestet 'modul' is not active, so you can read out the admin password hahs via blind injections.  
Additionaly there are a few SQL-Injections in the modules.  
Here a few examples:[SQL] - here the same as above, send this via POST to  
bypass the 'union'-cover[SQL][SQL][SQL]  
CyberDead, atomic, sirius_  
Whole Team  
Zealots :D :D