Конспект лекции по обучению «Белая шляпа» от Мист: практическая часть, заметки студентов
Преподаватель: gh0stkey (https://www.zhihu.com/people/gh0stkey/answers)
Редактор: Летающий дракон (https://github.com/)
Лицензия: CC BY-NC-SA 4.0 (http://creativecommons.org/licenses/by-nc-sa/4.0/)
Поиск по ключевым словам на Baidu:
URL для загрузки исходного кода: http://download.csdn.net/download/u012513463/9701150
Структура каталога:
После установки появится следующее окно:
Пароль администратора: admin:123456.
В каталоге мы ищем файлы SQL:
Мы видим файл /install/install/sql
. Мы попробуем получить доступ к нему на случайном сайте:
Доступ есть.
Переходим в бэкенд и видим две точки загрузки: управление интерфейсом и управление альбомом:
Для демонстрации мы выбираем управление альбомами. Сначала мы загружаем случайный PHP-файл:
Появляется сообщение о несоответствии типа файла, а затем отображается тип файла. Мы предполагаем, что программа определяет тип файла для проверки, но ранее упоминалось, что тип можно изменить (см. главу «Загрузка файлов»). Мы используем Burp для перехвата запроса и меняем тип на image/jpg
, а затем отправляем запрос.
Файл успешно загружен:
Затем мы используем нож для соединения, обратите внимание, что имя файла начинается с двух точек, обозначающих родительский каталог, поэтому реальный путь — /photos/1480440169.php
:
Теперь посмотрим на исходный код, /home/xcgl.php
, строка 47:
//Список типов файлов для загрузки
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
Здесь находится список типов файлов. Далее, строка 221:
if(!in_array($file["type"], $uptypes))
//Проверка типа файла
{
echo "Тип файла не соответствует!".file["type"];
exit;
}
Программа проверяет тип файла, но кроме этого не проводит никакой другой проверки, поэтому здесь существует уязвимость для загрузки файлов.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )