Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Помогите сделать скрипт... |

01.11.2007, 08:28
|
|
Members of Antichat - Level 5
Регистрация: 09.07.2006
Сообщений: 553
Провел на форуме: 7561206
Репутация:
1861
|
|
Помогите сделать скрипт...
Помогите сделать скрипт, чтобы он открывал файл php, заменял функцию eval(она стоит в самом начале) на echo , выполнял полученный скрипт, и если в результате находил в коде eval(gzinflate(base64_decode())), то повторял процедуру.
З.Ы. Буду очень благодарен, любой помощи...
З.ы.Ы Если кому надо, могу за помощь +6 поставить... ;-)
Более подробно:
Имеется php скрипт, в котором есть одна команда eval(gzinflate(base64_decode('Здесь длинный-длинный код')));
Мне нужно узнать php код который выполняется.
Я пробовал подставлять вместо eval echo, в результате
таже самая функция , только декодируется уже другой код, и так я 4 раза пробовал декодировать вручную этот текст, поэтому нужно сделать цикл, который меняет евал на екхо, запускает полученный скрипт, в результате собирает со страницы то, что вывела екхо(там снова будет eval(gzinflate(base64_decode('Здесь длинный-длинный код'))); ), и так столько раз, пока не выявится исходный текст скрипта.
Последний раз редактировалось Iceangel_; 01.11.2007 в 13:59..
|
|
|

01.11.2007, 09:27
|
|
Гарант Форума
Регистрация: 22.01.2005
Сообщений: 267
Провел на форуме: 1982081
Репутация:
1067
|
|
для начала создаем файл script.php, над которым будут проводиться операции
PHP код:
<?
eval("\$str = \"$str\";");
?>
затем код оперирущего скрипта
PHP код:
<?
$filename = "script.php";
$rh = fopen($filename, "r");
$filedata = fread($rh, filesize($filename));
if (preg_match("/eval\(.*\);/i", $filedata))
{
$backup = preg_split("/eval\(.*\);/i", $filedata);
$params = preg_split("/eval\(|\);/i", $filedata);
$data = $backup[0]."echo ".$params[1].";".$backup[1];
$wh = fopen($filename, "w");
fwrite($wh, $data);
fclose($wh);
}
fclose($rh);
// execution
$fullpath = realpath("./");
passthru("php $fullpath/script.php");
?>
пока что не реализовано (потому как не понял, что ты имел ввиду)
и если в результате находил в коде eval(gzinflate(base64_decode())), то повторял процедуру.
запускается скрипт, ищет eval() - пока что при условии что он один (если предполагается что их несколько - скажи - переделаю). далее бэкапится все до eval() и после. внутри eval() выдирается все, что было между скобок. затем открываем файл заного, вставляем все, что было до eval(), вставляем echo и все что было между скобок в eval() и все что после eval. работоспособность проверил, но только при учете что eval() в скрипте один, если несколько, надо сделать построчное чтение из файла и немного изменить обработку. затем скрипт запускается из командной строки командой
php full/path/to/file/script.php
Последний раз редактировалось .::Gh0st::.; 01.11.2007 в 09:30..
|
|
|

16.11.2007, 12:54
|
|
Гарант Форума
Регистрация: 22.01.2005
Сообщений: 267
Провел на форуме: 1982081
Репутация:
1067
|
|
итак, в одной строке было зашифрован код рст шелла от електа. код шелла во вложениях.
код моего скрипта:
PHP код:
<?
$filename = "1.txt";
$rh = fopen($filename, "r");
$filedata = fread($rh, filesize($filename));
while(preg_match("/eval\(gzinflate\(base64_decode\('(.*)'\)\)\);/i", $filedata) === 1)
{
$rh = fopen($filename, "r");
$filedata = fread($rh, filesize($filename));
if (preg_match("/eval\(gzinflate\(base64_decode\('(.*)'\)\)\);/i", $filedata))
{
$params = preg_split("/eval\(|\);/i", $filedata);
ob_start();
eval("echo $params[1];");
$newstr = ob_get_contents();
ob_end_clean();
$wh = fopen($filename, "w");
fwrite($wh, $newstr);
fclose($wh);
}
fclose($rh);
}
?>
|
|
|

16.11.2007, 14:42
|
|
Members of Antichat - Level 5
Регистрация: 09.07.2006
Сообщений: 553
Провел на форуме: 7561206
Репутация:
1861
|
|
Огромное спасибо за оказанную помощь, в жизнь не забуду... =)
Последний раз редактировалось Iceangel_; 16.11.2007 в 15:02..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|