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

Вопрос по инжектированию JS, со строго настроенным CSP.

tempUser

floppy-диск
Пользователь
Регистрация
21.07.2023
Сообщения
3
Реакции
0
Приветствую! Может кто-нибудь подсказать, как инжектировать js скрипт(который представлен в виде строки, т.е. выполнить код из строки), из контент скрипта расширения, в сайт со строго настроенным CSP. Манифест расширения, третьей версии.
 
Попробуй chrome.scripting API или chrome.tabs.executeScript с опцией {code: 'jsCode'}
Насколько я знаю, варианты tabs.executeScript и scripting, chrome будет выполнять не обращая внимания на СSP. И было бы все отлично, но))

tabs.executeScript и правда выполняет код строки, только проблема в том что это 2 манифест. У меня третий, и переходить назад не хочется.
вариант со scripting, идет выполнение не строки, а именно кода. И засунуть eval, setTimeout итд не получится, так как CSP сразу же режет эти варианты.
 
Насколько я знаю, варианты tabs.executeScript и scripting, chrome будет выполнять не обращая внимания на СSP. И было бы все отлично, но))

tabs.executeScript и правда выполняет код строки, только проблема в том что это 2 манифест. У меня третий, и переходить назад не хочется.
вариант со scripting, идет выполнение не строки, а именно кода. И засунуть eval, setTimeout итд не получится, так как CSP сразу же режет эти варианты.
С этими новыми манифестами V3 все не так просто как раньше.
я бы попробовал так: делаешь перехват запросов через webRequest, и прям в полете подменяешь скрипты. Или вставляешь теги напрямую в DOM. Это должно сработать.
Если нет - можно пойти хитрее. Замаскировать код, накрутить обфускацию. Или вообще все сделать локально в расширении, без инъекций.
 
С этими новыми манифестами V3 все не так просто как раньше.
я бы попробовал так: делаешь перехват запросов через webRequest, и прям в полете подменяешь скрипты. Или вставляешь теги напрямую в DOM. Это должно сработать.
Если нет - можно пойти хитрее. Замаскировать код, накрутить обфускацию. Или вообще все сделать локально в расширении, без инъекций.
Вот насчет webRequest, там нужны еще права webRequestBlocking, что тоже было во втором манифесте. В третьем нету. Там порезали эти привелегии и теперь прямого доступа к запросам нет, во втором манифесте можно просто стопить все запросы и удалять с хедеров csp политику... И уже потом соотвественно инжектить как хочешь... В третьем манифесте, работа уже идет с правилами, там тоже можно задать правила для обработки заголовков, но что-то не стабильно это работает, не всегда и не везде меняет, хз почему.
 


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