lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20050912163147.3618.qmail@securityfocus.com>
Date: 12 Sep 2005 16:31:47 -0000
From: r.verton@...il.com
To: bugtraq@...urityfocus.com
Subject: PHP Nuke <= 7.8 Multiple SQL Injections


[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 (phpnuke.org)


Credit:
=======
Robin 'onkel_fisch' Verton from it-security23.net


Description:
============
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.
[http://www.phpnuke.org/]


Vulnerability:
==============

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");
       die();
}

[...]

if (!ini_get("register_globals")) {
       import_request_variables('GPC');
}

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".

http://www.example.com/modules.php POST: name=' OR 1=1/*
will produce an error, neither
http://www.example.com/modules.php 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:

http://www.example.com/modules.php?name=News&file=article&sid=[SQL] - here the same as above, send this via POST to
bypass the 'union'-cover

http://www.example.com/modules.php?name=News&file=comments&Reply&pid=[SQL]

http://www.example.com/modules.php?name=News&file=comments&op=Reply&pid=[SQL]

http://www.example.com/modules.php?name=News&file=comments&op=Reply&sid=[SQL]

Greets:
==============
CyberDead, atomic, sirius_
Whole secured-pussy.de Team
Zealots :D :D


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ