php shell

Discussion in 'PHP' started by lomerok, 17 May 2008.

  1. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    решил написать шелл ..
    но , столкнулся с проблемой , как сделать так чтоб файлы автоматом станавились ссылками на редактирование ??
     
  2. zer0ska

    zer0ska Elder - Старейшина

    Joined:
    5 Dec 2007
    Messages:
    103
    Likes Received:
    9
    Reputations:
    0
    не понел вапроса.

    ИМХО есть же r57Shell и antichatshell
    ну или
     
  3. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    что тут непонятно , хочу написать свой полностью функциональный шелл ...
     
  4. pento

    pento Elder - Старейшина

    Joined:
    3 Jul 2006
    Messages:
    126
    Likes Received:
    24
    Reputations:
    -1
    Для начала освой какой-нить язык программирования, например тот же php. И таких вопросов у тебя не будет.
     
  5. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    php я учу , поэтому и пишу shell . или сейчас модно осваивать програмирование без практики ??
    имхо , умники вроде pento , промолчите пожалусто , коли поделу нечего сказать...
     
  6. Dimi4

    Dimi4 Чайный пакетик

    Joined:
    19 Mar 2007
    Messages:
    750
    Likes Received:
    1,045
    Reputations:
    291
    ну если розбираешся, дык пойди и возьми тот же c99shell(например) и посмотри ка сделано там. Потом попробуй не скопировать, а написать так же.
     
  7. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Практика должна начинаться с простых скриптов, а не с полнофункционального шелла.

    Я такой вопрос вообще не понимаю. При достаточном уровне знаний в том же php его не возникает. Могу ответить только абстрактно - получаем список файлов из заданной директории (функции opendir(), readdir(), closedir()), и, выводя список диров и файлов в браузер, добавляем к имени всех файлов (filetype()) ссылку на скрипт, открывающий файл для редактирования (простейший пример: print "<a href='myshell.php?act=edit&file=".urlencode($file_name)."'>edit</a>"; ).
     
  8. lomerok

    lomerok Elder - Старейшина

    Joined:
    23 Apr 2008
    Messages:
    140
    Likes Received:
    8
    Reputations:
    0
    В том-то и дело , абстрактно я тоже могу , а вот как именно сделать из имён фаилов - ссылки , недогоняю..
    имхо абстрактно мы все можем..
    но всеравно спасибо...
     
  9. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Вот простейший скрипт (без особых проверок), который отображает список каталогов и файлов в заданной директории и позволяет редактировать файлы.

    PHP:
    <html><head>
    <meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
    <title>Список файлов</title></head>
    <body>
    <?php
    $dir
    ='/'//каталог, с которым работаем



    if(isset($_GET['act']))
    {
      
    $fl=isset($_GET['file']) ? $_GET['file'] : '';
      if(
    file_exists($dir.$fl) && filetype($dir.$fl)=="file")
      {
        
    $fc=htmlspecialchars(file_get_contents($dir.$fl));
        
    $fname=htmlspecialchars($fl);
        
    $furl=urlencode($fl);


        if(
    $_GET['act']=='edit'//отображаем содержимое файла
        
    {
    print <<<HERE
    <form action='?act=save&file=$furl' method='post'>
    Редактирование <b>
    $fname</b>:
    <br><textarea cols=80 rows=30 name='content' wrap=off>
    $fc</textarea><br><input type='submit' value='Сохранить'>
    </form><hr>
    HERE;
        }
        elseif(
    $_GET['act']=='save'//сохраняем новое содержимое
        
    {
          
    $content=isset($_POST['content']) ? $_POST['content'] : '';
          
    $fp=fopen($dir.$fl,'w+');
          
    fputs($fp,$content);
          
    fclose($fp);

          print 
    "Файл <b>$fname</b> отредактирован.<hr>";
        }
      }
    }


    //читаем заданный каталог
    $d=opendir($dir);
    $elem=@readdir($d);

    $elemf=Array();
    $elemd=Array();

    //получаем списки файлов и каталогов
    while($elem)
    {
      if(
    $elem!="." and $elem!="..")
      {
        if(
    filetype($dir.$elem)=="file")
          
    $elemf[]=$elem;
        else
          
    $elemd[]=$elem;
      }

      
    $elem=@readdir($d);
    }


    //сортируем списки файлов и каталогов
    sort($elemf);
    sort($elemd);

    $nm=0;$fls=0;$drs=0;

    closedir($d);



    if(
    count($elemf)+count($elemd)<1)
      die(
    "В директории $dir нет файлов и каталогов");


    foreach(
    $elemd as $dr)
    {
      print 
    '[dir] '.htmlspecialchars($dr).'<br>'//вывод каталогов
    }

    print 
    '<hr>';


    foreach(
    $elemf as $dr)
    {
      print 
    "<a href='$PHP_SELF?act=edit&file=".urlencode($dr)."'>".htmlspecialchars($dr)."</a><br>"//вывод файлов со ссылками на редактирование
    }


    ?>
    </body></html>
     
    #9 d_x, 18 May 2008
    Last edited: 18 May 2008
  10. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Для начала выучи тег 'a' в HTML