Problema con listado de archivos
Publicado por gran (2 intervenciones) el 26/06/2019 03:35:40
Hola gente, les comento, necesito listar y previsualizar desde un archivo php otros archivos txt.
Estuve editando un script que encontre y logre hacerlo funcionar.
El problema que tengo ahora es que la idea es que solo se puedan "ver" archivos de cierta extension o al menos evitar que se puedan leer archivos PHP
Otro problema que tengo es que sufro de transversal directory por lo cual cualquiera puede buscar archivos hacia atras haciendo ../../
La idea es que el script solo pueda leer el contenido de la carpeta en la que el se encuentra, sin mostrar los archivos "php" y sin permitirle la lectura de otros phps o del mismo
Sinceramente se practicamente nada de php pero me las ingenio.
si me pueden dar una mano se los agradeceria (llevo casi una semana con esto)
la idea es leer asi https://whocallsme.club/test.php?id=database&lista=archivo.txt
este es el script que estuy utilizando
Estuve editando un script que encontre y logre hacerlo funcionar.
El problema que tengo ahora es que la idea es que solo se puedan "ver" archivos de cierta extension o al menos evitar que se puedan leer archivos PHP
Otro problema que tengo es que sufro de transversal directory por lo cual cualquiera puede buscar archivos hacia atras haciendo ../../
La idea es que el script solo pueda leer el contenido de la carpeta en la que el se encuentra, sin mostrar los archivos "php" y sin permitirle la lectura de otros phps o del mismo
Sinceramente se practicamente nada de php pero me las ingenio.
si me pueden dar una mano se los agradeceria (llevo casi una semana con esto)
la idea es leer asi https://whocallsme.club/test.php?id=database&lista=archivo.txt
este es el script que estuy utilizando
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
@set_time_limit(0);
$dir = ".";
function listar_archivos($dir)
{
if ($dh=@dir($dir))
{
while (
$file = $dh->read())
{
if (($file=='.') or ($file=='..'))
{
$links_ls[]=$file;
}
elseif (is_dir($dir.'/'.$file))
{
$dirs_ls[]=$file;
}
else
{
$archivos_ls[]=$file;
}
}
if(@asort($archivos_ls))
{
foreach ($archivos_ls as $archivo)
{
echo '<tr valign="top">
<td><a href="?id=database&lista='.$archivo.'">'.$archivo.'</a></td>
</tr>';
flush();
ob_flush();
}
}
echo '</table>';
}
}
/* no quitar la funcion de abajo*/
/* no quitar la funcion de arriba*/
if (($_GET['id'] == 'dir') or (!$_GET['id']))
{
if (trim($dir)=='')
{
$dir = getcwd();
}
listar_archivos($dir);
}
elseif (($_GET['id'] == 'database') &&(!trim($_GET['lista']) == ''))
{
if ($_POST['save_file'] == 'pwz')
{
}
/*esta funcion carga el contenido*/
/*e echo '<textarea name="c0d3" cols="80" rows="20">';*/
else
{
echo htmlentities(@file_get_contents(@realpath($dir.'/'.$_GET['lista'])));
}
/*e echo '</textarea></form>';*/
}
?>
Valora esta pregunta


0