1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wanglingxiao-mysiteforme

 / Детали:

MSFM-backend таблица/список? Интерфейс s_name имеет инъекцию SQL.

Предстоит сделать
Владелец
Создано  
16.03.2025

CVE-2024-57765
Обнаружено лабораторией Chaitin Security Research

Продукт с уязвимостью: wangl1989/MSFM
Версия продукта с уязвимостью: до 2025-01-01
Тип уязвимости: внедрение SQL-кодаДетали уязвимости:

  1. Глобальный поиск показал, что конкатенация параметров через ${name} в файле mapper/TableDao.xml: 47 может привести к внедрению SQL-кода. Этот метод реализован в методе listPage(). Продолжаем находить место его определения.
    ! введите описание изображения здесь
  2. Переходим к слою TableDao, где в файле com/mysiteforme/admin/dao/TableDao.java: 21 параметр пути имени помещается в карту отображения и передается методу listPage(). Продолжаем выяснять, где этот метод вызывается
    ! введите описание изображения здесь
  3. Продолжая анализ, мы приходим к файлу com/mysiteforme/admin/service/ipl/TableServiceImpl.java: 198. Вызывается метод списка страниц listPage(), и можно видеть, что эта операция реализована в методе selectTablePage()
    ! введите описание изображения здесь
  4. При переходе к контроллерному слою управления, было найдено, что метод selectTablePage() вызывается на маршруте admin/system/table. Продолжая анализ, в файле com/mysiteform/admin/controller/system/TableController.java: 70 все параметры, начинающиеся со s_, извлекаются из запроса и хранятся в объекте типа Map. Если карта не пуста, параметры, полученные через HTTP, преобразуются в строковый тип и назначаются параметру name. Дальнейший анализ показывает, что переданные параметры непосредственно попадают в шаблонный файл admin/system/table/listвведите описание изображения здесь
  5. При входе в шаблонный файл templates/admin/system/table/list.ftl: 21, когда пользователь вводит s_name, форма после отправки передает значение ввода пользователя серверу. Весь процесс не фильтрует или не экранирует значение параметра s_name. Поэтому, контролируя параметр s_name, можно активировать уязвимость внедрения SQL-кода.
    введите описание изображения здесь
  6. Создание POC, вход в систему для захвата пакетов, замена cookies ПОСТ /admin/system/table/list HTTP/1.1 Host: 127.0.0.1:8083 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Cookie: XXX X-Requested-With: XMLHttpRequest24sql
    limit=10&page=1&s_name=1

python sqlmap.py -u "http://127.0.0.1:8083/admin/system/table/list" --data="limit=10&page=1&s_name=1" --cookie="XXXXX" -p s_name --current-db


![скриншот экрана](https://foruda.gitee.com/images/1736134627721897560/a45c03d6_13737655.png "Скриншot экрана")

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/wanglingxiao-mysiteforme.git
git@api.gitlife.ru:oschina-mirror/wanglingxiao-mysiteforme.git
oschina-mirror
wanglingxiao-mysiteforme
wanglingxiao-mysiteforme